Software Engineering Revision Vol.1

Chapter 1:

1.      What are the essential attributes of goodsoftware?      

            Acceptability

            Dependabilityand security

            Efficiency

            Maintainability

 

2.        What is software engineering?

          Software engineering encompasses a process, a collectionof methods (practice) and an array of tools that allow professionals to buildhigh-quality computer software

          Software engineeringis a discipline whose aim is the production of fault-free software delivered ontime and within budget, that satisfied the clients’ needs. Furthermore, thesoftware must be easy to modify when the user’s needs change.

 

3.        What are the four fundamental activities in software processes?

          1. Software specification, where customers and engineers define thesoftware that is to be produced and the constraints on its operation.

          2. Software development, where the software is designed andprogrammed.(design and implementation)

          3. Software validation, where the software is checked to ensure thatit is what the customer requires.

          4. Software evolution, where the software is modified to reflectchanging customer and market requirements.

 

4.        What is a software engineering code of ethics?

          A set of principles that set out, in a general way, standards ofexpected behaviour for professional software engineers.

 

5.        What is software?

          Program,data and documentation

 

6.     Three main processmodel:

1、       Waterfall model:          

           In principle, the result of eachphase is one or more documents are approved. The following phase should notstart until the previous phase has finished

             Steps:

            Requirementdefinition ------- System and software design ---------Implementationand unit testing ---------integration and software testing------Operation and maintenance

 

2、       Incremental development:

                Characteristics:

(1)  The cost of accommodatingchanging customer requirements is reduced.

(2)  It is easier to get customerfeedback on the development work that has been done.

(3)  More rapid delivery anddeployment of useful software to the customer is possible, even if all of the functionalityhas not been included.

 

Comparison with Waterfall development:

(1)  The amount of analysis and documentation that has to be redone is muchless than is required with the waterfall model.

(2)  Customers can comment on demonstrations of the software and see how much hasbeen implemented. Customers find it difficult to judge progressfrom software design documents.

(3)  Customers are able to use and gain value from the softwareearlier than is possible with a waterfall process.

 

3、    Spiral Model

Features:

(4)  Process is represented as aspiral rather than as a sequence of activities with backtracking

(5)  Each loop in the spiral represents a phase in the process.

(6)  No fixed phases such asspecification or design - loops in the spiral are chosendepending on what is required.

(7)  Risks are explicitly assessed and resolved throughout the process.

Phases:

 

Objective setting

Risk assessment and reduction

Planning

Development and validation

 

7.        What are the development stages in reuse-based development?

(Requirements specification)

Component analysis

Requirements modification

System design with reuse

Development and integration

(Systemvalidation)

 

8.        What are the six fundamental best practices in the RUP?

Develop software iteratively

Manage requirements

Use component-based architectures

Visually model software

Verify software quality

Control changes to software

 

9.        What are the advantages of using incremental development anddelivery?

          Earlydelivery of critical functionality to the customer

          Early increments serve as prototypes to explorerequirements

          Lower risk of overall project failure

          More extensive testing of critical customer functionality

 

10.      List the 5 principles of agile methods.

Customer involvement: Customersshould be closely involved throughout the development process. Their role isprovide and prioritize new system requirements and to evaluate the iterationsof the system.

Incremental delivery: Thesoftware is developed in increments with the customer specifying therequirements to be included in each increment.

People not process: Theskills of the development team should be recognized and exploited. Team membersshould be left to develop their own ways of working without prescriptiveprocesses.

Embrace change: Expectthe system requirements to change and so design the system to accommodate thesechanges.

Maintain simplicity: Focuson simplicity in both the software being developed and in the developmentprocess. Wherever possible, actively work to eliminate complexity from thesystem.

 

11.      The advantages of pairprogramming.

(1)  it supports the idea of collective ownership and responsibilityfor the system.

(2)  it acts as an informal review and process because each line of code is lookedat by at least 2 people.

(3)  it helps support refactoring which is a process of software improvement

 

12.      Reuse-oriented softwareengineering

13.     Pair programming

14.     Rational UnifiedProcess

The Rational Unified Process is a modern genericprocess model that is organized into phases (inception, elaboration,construction and transition) but separates activities (requirements, analysisand design,etc.) from these phases

 

15.     Agile Methods 

Extreme programming, Scrum, Crystal, Adaptive, SoftwareDevelopment, DSDM, Feature Driven Development.

 

16.   Why are iterations usually limited when the waterfall model is used?

Because the waterfall model is adocument-driven model with documents produced at the end of each phase. Becauseof the cost of producing and approving documents, iterations and costly andinvolve significant rework.

 

17.   What are the principal requirements engineering activities?

  Feasibility study

  Requirements elicitation and analysis

  Requirements specification

  Requirements validation


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值