1 / 11

11425 Software Engineering

11425 Software Engineering. Introduction to Software Engineering February 14, 2012. Sommerville , I., Software Engineering, Pearson, 9 th Ed., 2010. Essential Attributes of Good Software. Maintainability Software should be able to evolve for changes Dependability and security

vashon
Download Presentation

11425 Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 11425 Software Engineering Introduction to Software Engineering February 14, 2012 Sommerville, I., Software Engineering, Pearson, 9th Ed., 2010.

  2. Essential Attributes of Good Software • Maintainability • Software should be able to evolve for changes • Dependability and security • Reliability, security, and safety • Efficiency • Responsiveness, processing time, memory utilization • Acceptability • Understandable, usable, and compatible

  3. Computer Science • Computer science is concerned with the theories and methods that underline computers and software systems, whereas software engineering is concerned with the practical problems of producing software • Computer science is often most applicable to relatively small programs. Elegant theories of computer science cannot always be applied to large, complex problems that require a software solution.

  4. System Engineering • System engineering is concerned with hardware development, policy and process design and system deployment, as well as software engineering • System engineers are involved in specifying the system, defining its overall architecture, and then integrating the different parts to create the finished system

  5. Software Engineering Diversity • There are no universal software engineering methods and techniques that are suitable for all systems and all companies • The most significant factor in determining which software engineering methods and techniques are most important is the type of application that is being developed

  6. Challenges of Building Most Software • Heterogeneity • Develop techniques for building dependable software that is flexible enough to cope with different types of computes and mobile devices • Business and social change • Software applications should be able to change rapidly as business and society are changing quickly • Security and trust • This is especially true for remote software systems through a web page or web service interface

  7. Software Engineering Diversity • There are many different types of applications including (1/2): • Stand-alone applications (photo editing, CAD) • Interactive transaction-based applications (cloud) • Embedded control systems (anti-lock braking system) • Batch processing systems (salary payment systems)

  8. Software Engineering Diversity • There are many different types of applications including (2/2): • Entertainment systems (games) • Systems for modeling and simulation (physical scenario) • Data collection systems (sensor based systems) • Systems of systems • The boundaries between these system types are blurred

  9. Software Engineering for All Systems • There are software engineering fundamentals that apply to all types of software systems: • They should be developed using a managed and understood development process (process) • Dependability and performance are important for all types of systems(dependability) • Understanding and managing the software specification and requirements are important (requirements and management) • Make as effective use as possible of existing resources (reuse)

  10. Software Engineering Ethics (ACM/IEEE) • Public • Client and employer • Product • Judgment • Management • Profession • Colleagues • Self

  11. Discuss • Discuss whether professional software engineers should be certified in the same way as doctors or lawyers.

More Related