Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Chinese University, CSE Dept. Software Engineering / 1 - 1 Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.

Similar presentations


Presentation on theme: "© Chinese University, CSE Dept. Software Engineering / 1 - 1 Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________."— Presentation transcript:

1 © Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________ Computer Science & Engineering Department The Chinese University of Hong Kong

2 © Chinese University, CSE Dept. Software Engineering / What Is Software Engineering? Software Engineering: A “multi-person construction of multi-version software.” –A term invented in the late 1960s. –Not just programming. –Dealing with complex systems. –Standard techniques and tools are invented and applied in this field.

3 © Chinese University, CSE Dept. Software Engineering / Why Software Engineering? 1.Growing software scale and cost –An order of magnitude growth in every 10 years. –Techniques applicable to small systems could not be scaled up. 2.Complexity of applications –The demand for software operations increases at a faster rate than software engineer’s productivity

4 © Chinese University, CSE Dept. Software Engineering / Why Software Engineering? 3.Impact of software failure –Lack of discipline makes software easy to be misused. –Multiple copies of software make software failures spread fast.

5 © Chinese University, CSE Dept. Software Engineering / Why Software Engineering? 4.Evolution of software –Software crisis was identified in 1960’s. –Software crisis is still software crisis today. –Code is easy to change, but software is hard to replace. 5.Requirements of software measurement and metrics –Estimate software ______. –Predict and meet software development ______. –Measure and demonstrate software ______.

6 © Chinese University, CSE Dept. Software Engineering / The Software Life Cycle (The “Waterfall Model”) 1.Requirement Analysis and Specification –After a feasibility study of customer’s demand –Identify and document the exact requirements for the system –Involve customer, developer, and user –“______ the problem is” 2.Design –A software system is developed to meet the requirements –Architectural + detailed design –“______ to solve the problem”

7 © Chinese University, CSE Dept. Software Engineering / The Software Life Cycle 3.Coding and Module Testing (Unit testing) –To produce the actual code for the customer –Ideas on modules (units) – divide and conquer –Work breakdown structure »Break the system down into __________ –Modules are tested individually”

8 © Chinese University, CSE Dept. Software Engineering / The Software Life Cycle 4.Integration and System Testing –Modules are integrated and tested as a whole system 5.Delivery and Maintenance –Delivery to user for operation –Corrective, adaptive, perfective maintenance

9 © Chinese University, CSE Dept. Software Engineering / The Waterfall Model of the Software Life Cycle Requirements analysis and specification Design and specification Coding and module testing Integration and system testing Delivery and maintenance verify Design review Design walkthrough Formal inspection Figure 1.1: The waterfall model of the software life cycle verify Code review Code walkthrough verify Testing results verify Operational environment e.g., NASA model

10 © Chinese University, CSE Dept. Software Engineering / Typical Software Cost Distribution System TypePhase Costs (%) Requirements/designImplementationTesting Command and control Systems Spaceborne systems Operating systems Scientific systems Business systems4428 ______ Therefore, _________________  ___________________ However, good ______________  good _______________ The cost of s/w development activities

11 © Chinese University, CSE Dept. Software Engineering / Relative Penalty of Error Correction Figure 1.2: Relative cost vs. phase

12 © Chinese University, CSE Dept. Software Engineering / Possible Software Development Paths Figure 1.3: Many possible paths to develop software

13 © Chinese University, CSE Dept. Software Engineering / Well-Engineered Software 1.The software should be maintainable 2.The software should be reliable 3.The software should be efficient 4.The software should offer an appropriate user interface 5.The software should be measurable for trade-off study

14 © Chinese University, CSE Dept. Software Engineering / Typical Trade-Off Study Cost 1.0 (100%) Efficiency or Reliability “The law of ________________” Figure 1.4: Tradeoff between cost and reliability

15 © Chinese University, CSE Dept. Software Engineering / Figure 1.5: Software engineering V.S. other engineering

16 © Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 1.Programming Languages –structured programs (high-level language) –independent compilation (e.g. C) –separation of specification from implementation (e.g., Ada and Java packages) –System command language (IBM OS 360 JCL vs. UNIX) –Tools (compiler, interpreter, debugger) –Compilation (run-time efficiency) vs. Interpretation (run-time flexibility) –GUI: visual languages for capturing semantics of windowing and interaction paradigms by graphical display devices –Language processing: formalization leads to automation

17 © Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 2.Operating Systems –Levels of abstraction (layers) (e.g. OSI 7-layer protocol) –separation of policy from mechanism –A productive OS environment for s/w development e.g. UNIX “tools”  software environment –Mobile computing environment – iOS and Android –Distributed system environment – Web Services, Cloud Computing

18 © Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 3.Databases –data independence  interoperability –reuse of existing database system –length of transactions (short vs. long)

19 © Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 4.Artificial Intelligence –exploratory development –imperative, applicative, declarative (assignment (recursive & (logic declarations & statement) composite specifications) functions) –expert systems (rules, facts) –natural language user interface

20 © Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 5.Theoretical Models –finite state machines (s/w spec & s/w design model) –Petri nets to model s/w –denotational semantics (spec. theorem proving) –temporal logic (high-order theories)

21 © Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 6.Management Science –s/w project estimation –s/w project scheduling –s/w project resource planning –s/w project tracking 7.Systems Engineering –complex systems –h/w, s/w interactions


Download ppt "© Chinese University, CSE Dept. Software Engineering / 1 - 1 Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________."

Similar presentations


Ads by Google