CEN 5011 Advanced Software Engineering Introduction Instructor Masoud

  • Slides: 12
Download presentation
CEN 5011 Advanced Software Engineering Introduction Instructor: Masoud Sadjadi http: //www. cs. fiu. edu/~sadjadi/Teaching/

CEN 5011 Advanced Software Engineering Introduction Instructor: Masoud Sadjadi http: //www. cs. fiu. edu/~sadjadi/Teaching/ sadjadi@cs. fiu. edu CEN 5011 1 st Lecture

Acknowledgements Dr. Peter Clarke Dr. Betty Cheng Dr. Bernd Bruegge Dr. Allen Dutoit CEN

Acknowledgements Dr. Peter Clarke Dr. Betty Cheng Dr. Bernd Bruegge Dr. Allen Dutoit CEN 5011: Advanced Software Engineering 1 st Lecture 2

Agenda Introduction to Software Engineering CEN 5011: Advanced Software Engineering 1 st Lecture 3

Agenda Introduction to Software Engineering CEN 5011: Advanced Software Engineering 1 st Lecture 3

What is Software Engineering? (1) Systematic approach for developing software “Methods and techniques to

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] CEN 5011: Advanced Software Engineering 1 st Lecture 4

What is Software Engineering? (2) “Practical application of scientific knowledge in the design and

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] CEN 5011: Advanced Software Engineering 1 st Lecture 5

Questions Addressed by SE How do we ensure the quality of the software that

Questions Addressed by SE How do we ensure the quality of the software that we produce? How do we meet growing demand still maintain budget control? How do we avoid disastrous time delays? CEN 5011: Advanced Software Engineering 1 st Lecture 6

Why apply SE to Systems? Provide an understandable process for system development. Develop systems

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. CEN 5011: Advanced Software Engineering 1 st Lecture 7

How can we apply SE? 1. Modeling 2. Problem-solving 3. Knowledge acquisition 4. Rationale-driven

How can we apply SE? 1. Modeling 2. Problem-solving 3. Knowledge acquisition 4. Rationale-driven CEN 5011: Advanced Software Engineering 1 st Lecture 8

1. Modeling “A model is an abstract representation of a system that enables us

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 CEN 5011: Advanced Software Engineering 1 st Lecture 9

2. Problem Solving Formulate the problem Analyze the problem Search for solutions Decide on

2. Problem Solving Formulate the problem Analyze the problem Search for solutions Decide on the appropriate solution Specify the solution CEN 5011: Advanced Software Engineering 1 st Lecture 10

3. Knowledge Acquisition Domain specific knowledge. New knowledge can affect the development process. Knowledge

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. CEN 5011: Advanced Software Engineering 1 st Lecture 11

4. Rationale Management Assumptions made about systems change constantly. Application domain models stabilize, solution

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. CEN 5011: Advanced Software Engineering 1 st Lecture 12