Download presentation
Presentation is loading. Please wait.
1
Why Software Engineering?
Chapter 1 Why Software Engineering? 2007/2008
2
Learning objectives Define what is meant by software engineering and describe the differences between computer science and software engineering. Understand the track record of software engineering. Identify the characteristics of “good software”. Define what is meant by a systems approach to building software and understand why a systems approach is important.
3
1.1 WHAT IS SOFTWARE ENGINEERING?
①Solving Problems Analyzing, Synthesis A method or technique is a formal procedure for producing some result. A tool is an instrument (手段) or automated system for accomplishing something in a better way A procedure is like a recipe(处方) A paradigm (范例) is like a cooking style ②Where Does the Software Engineer Fit In?
4
1.1 WHAT IS SOFTWARE ENGINEERING?
COMPUTER SCIENCE CUSTOMER Theories Computer Function Problem Software Engineering Tools and Techniques to Solve Problem The relationship between computer science and software engineering
5
1.2 HOW SUCCESSFUL HAVE WE BEEN?
6
1.3 WHAT IS GOOD SOFTWARE? Good software engineering must always include a strategy for producing quality software. Software quality include at least three ways: ①The Quality of the Product ②The Quality of the Process ③Quality in the Context of the Business Environment
7
1.4 WHO DOES SOFTWARE ENGINEERING?
Team Programming Aspects: Book Page 15 Customer, User, Developer… Subcontractors, Turnkey system (整套承包系统 ,“交钥匙”系统)…
8
1.4 WHO DOES SOFTWARE ENGINEERING?
Participants(参与者) in software development
9
1.5 A SYSTEMS APPROACH ①The Elements of a System
◆Activities and objects ◆Relationships and the System Boundary ②Interrelated Systems Two different ways simultaneously(同时地): statically(静止[态]地) and dynamically(动态地).
10
1.6 AN ENGINEERING APPROACH
◆Building a House: ( Book page 21 to 23 ) ·determining and analyzing the requirements ·producing and documenting the overall design of the house ·producing detailed specifications of the house ·identifying and designing the components ·building each component of the house ·testing each component of the house ·integrating the components making final modifications after the residents have moved in ·continuing maintenance by the residents of the house
11
1.6 AN ENGINEERING APPROACH
◆Building a System Development of software includes the following activities: requirements analysis and definition(需求分析与定义) system design(系统设计) program design(程序设计) writing the programs (program implementation)(写程序<程序执行>) unit testing (单元测试) integration testing (综合测试) system testing (系统测试) system delivery (系统交付) maintenance (维护)
12
1.7 MEMBERS OF THE DEVELOPMENT TEAM
Requirements Analysts and Definition System Design Program Implementation Unit Testing Integration Delivery Maintenance ☻ Analyst ☻Programmer ☺Designer ☻Tester ☺Trainer The roles of the development team
13
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
◆The Nature of the Change The key factors that have changed software development
14
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
1. criticality(危急程度,危险程度) of time-to-market(适应市场) for commercial products 2. shifts(变化) in the economics of computing: lower hardware costs and greater development and maintenance costs 3. availability. (可用性)of powerful desktop computing 4. extensive(广泛的) local- and wide-area networking 5. availability and adoption(采用) of object-oriented technology(面向对象技术) 6. graphical(图解的(绘图的,生动的)) user interfaces using windows, icons(图标), menus, and pointers(指针) 7. unpredictability(不可预见) of the waterfall model of software development
15
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
◆Wasserman's Discipline(学科) of Software Engineering ◇Abstraction(抽象) ◇Analysis and Design Methods and Notations ◇User Interface Prototyping(用户界面原型) Prototyping means building a small version of a system, usually with limited functionality that can be used to help the user or customer identify the key requirements of a system demonstrate (论证) feasibility(可行性) of a design or approach To be continue….
16
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
◇Software Architecture(软件体系结构) 1. modular decomposition(模块分解): based on assigning(分解) functions to modules 2. data-oriented decomposition(面向数据分解): based on external data structures 3. event-oriented decomposition(面向事件分解): based on events that the system must handle 4. outside-in(里面翻到外面) design: based on user inputs to the system 5.object-oriented design (面向对象设计): based on identifying classes of objects and their interrelationships To be continue….
17
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
◇Software Process(软件过程) ·Packages/minimal development ·Low cost/low risk ·Single platform Enterpriseor division-wide applications Departmental ·Mission-critical ·Multiuser ·Multiplatform ·2- to 3-tier development ·Limited scope/vision ·Low/medium risk ·Single/mulitiplatform ·1- to 2-tier development Single-user, desktop productivity tools The different types of software need different processes Differences in development (Wasserman 1996) To be continue….
18
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
◇Reuse(重用) 1. It is sometimes faster to build a small component than to search for one in a repository(知识库, 仓库) of reusable components. 2. It may take extra time to make a component general enough to be reusable easily by other developers in the future. 3. It is difficult to document the degree of quality assurance and testing that have been done, so that a potential reuser can feel comfortable about the quality of the component. 4. It is not clear who is responsible if a reused component falls or needs to be updated. 5. It can be costly and time-consuming to understand and reuse a component written by someone else. 6. There is often a conflict(冲突) between generality and specificity To be continue….
19
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
◇Measurement(测量) Empirical(经验) relational system Formal(正式) relational Empirical, relevant results Numeric results Implementation of solution Mathematics, Statistics(统计) Measurement Interpretation Real, Empirical World Formal, Mathematical Word 解释 Using measurement to help find a solution (look at BP 35) To be continue….
20
1.8 HOW HAS SOFTWARE ENGINEERING CHANGED?
◇Tools and Integrated Environments(工具与综合环境) Wasserman (1990) has identified five issues that must be addressed in any tool integration: 1. platform integration: the ability of tools to interoperate on a heterogeneous(异构) network 2. presentation integration: commonality of user interface 3. process integration: linkage between the tools and the development process 4. data integration: the way tools share data 5. control integration: the ability for one tool to notify(注意;通知) and initiate action in another
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.