1 / 12

CEN 5011 Advanced Software Engineering

CEN 5011 Advanced Software Engineering. Introduction. Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching/ sadjadi@cs.fiu.edu. Acknowledgements. Dr. Peter Clarke Dr. Betty Cheng Dr. Bernd Bruegge Dr. Allen Dutoit. Agenda. Introduction to Software Engineering.

cburkett
Download Presentation

CEN 5011 Advanced 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. CEN 5011 Advanced Software Engineering Introduction Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching/ sadjadi@cs.fiu.edu

  2. Acknowledgements • Dr. Peter Clarke • Dr. Betty Cheng • Dr. Bernd Bruegge • Dr. Allen Dutoit

  3. Agenda • Introduction to Software Engineering

  4. What is Software Engineering? (1) • Systematic approach for developing software • “Methods and techniques to develop and maintain quality software to solve problems.” [Pfleeger, 1990] • “Study of the principles and methodologies for developing and maintaining software systems.” [Zelkowitz, 1978] • “Software engineering is an engineering discipline which is concerned with all aspects of software production.” [Sommerville]

  5. What is Software Engineering? (2) • “Practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them.” [Boehm, 1976] • “Deals with establishment of sound engineering principles and methods in order to economically obtain software that is reliable and works on real machines.” [Bauer, 1972]

  6. Questions Addressed by SE • How do we ensure the quality of the software that we produce? • How do we meet growing demand and still maintain budget control? • How do we avoid disastrous time delays?

  7. Why apply SE to Systems? • Provide an understandable process for system development. • Develop systems and software that are maintainable and easily changed. • Develop robust software and system. • Allow the process of creating computing-based systems to be repeatable and manageable.

  8. How can we apply SE? • Modeling • Problem-solving • Knowledge acquisition • Rationale-driven

  9. 1. Modeling • “A model is an abstract representation of a system that enables us to answer questions about the system.” • Why use a model? • Systems are too large, too small, too complicated, or too expensive, to experience firsthand. • Models allow • Visualization • Comprehension

  10. 2. Problem Solving • Formulate the problem • Analyze the problem • Search for solutions • Decide on the appropriate solution • Specify the solution

  11. 3. Knowledge Acquisition • Domain specific knowledge. • New knowledge can affect the development process. • Knowledge acquisition is nonlinear – affects several of the software development models. • Risk assessment is important.

  12. 4. Rationale Management • Assumptions made about systems change constantly. • Application domain models stabilize, solution domain models are in constant flux. • Changes to the solution models due to: • design and implementation faults • new technology • Need to understand the context in which each design decision was made.

More Related