Vous êtes sur la page 1sur 12

Software Engineering :

A large software product have to follow the software engineering principles to :


• achieve a good quality software
• cost effectively

What is software ?

Software includes
• Computer programs (Instructions) that when executed provide desired functions and
performance.
• Data structures that enable the programs to adequately manipulate information.
• Documents that describe the operation and use of the programs.

What are Software Crisis ?

• Organizations are spending larger and larger portions of their budget on software.
• Software products are difficult to alter, debug, and enhance
• Often fail to meet the user requirements.
• Far from being reliable
• Frequently crash
• Often delivered late

What is Software Engineering ?

Software Engineering is a discipline whose aim is the production of fault free software
that satisfies the user’s needs and that is delivered on time and within budget.
List characteristics of software that need software engnieering .

• Size: large
• User is not the developer
• Lifespan: long (no ageing)
• Cost: development + operation/maintenance

Compare between program and software.

Program Software
• are developed by individuals for their Software is described by
personal use. • Its capabilities :
• are Small in size. • Functions it executes.
• have limited functionality. • Features it provides.
• the programmer himself is the sole user. • Facilities it offers.
• a single developer is involved.
• the user interface may not be very • The platform specifications that are
important. required to run it :
• very little documentation is expected. • Certain hardware
• can be developed according to the • Certain operating system
programmer’s individual style of
development.

What are types of Software ?


What are Software Applications ?

What are classes of Software ?

• Generic Software :
Generic software is designed for a broad customer market whose requirements are very
common, fairly stable, and well-understood by the software engineer.

• Customized Software :
Customized products are those that are developed for a customer where domain,
environment, and requirements are unique to that customer and cannot be satisfied by generic
products.

List The Attributes of Good Software.

• Maintainability: software should be written in such a way that it may evolve to meet the
changing needs of customer.
• Dependability: software dependability has a range of characteristics, including reliability,
security and safety.
• Efficiency: efficiency includes responsiveness, processing time, memory utilization etc…
• Usability: it should have an appropriate user interface and adequate documentation.

Disscus two techniques that software engineering uses to reduce software complexity.
• Abstraction.
• Decomposition.
What is software component ?

A software component is a system element offering a predefined service and is able to


communicate with other components.

What is a Software Processes?

A software process is a set of activities and associated results, which produce a software product.

• Software specifications: The functionality of the software and constraints on its operation
must be defined.
• Software development: Software that meets the specifications must be produced.
• Software validation: The software must be validated to ensure that it does what the
customer wants.
• Software evolution: The software must evolve to meet changing customer needs.

List Different Software life cycle Models :

• Classical Waterfall Model


• Iterative Waterfall Model
• Prototyping Model
• Evolutionary Model
• Spiral Model
Discuss Waterfall Model :

• The goal of feasibility studies is to evaluate alternative systems and to propose the most
feasible and desirable systems for development.

• The purpose of a requirements analysis is to identify the qualities required of the application,
in terms of functionality, performance, ease of use, portability, and The resultant document is
known as Software Requirements Specification (SRS) document that contains :
• Detailed statement of problem.
• Possible alternative solution to problem.
• Functional requirements of the software system.
• Non-Functional requirements of the software system.
• Constraints on the software system.
• Behavioral descriptions, and validation criteria.
• Activities undertaken during design Transform the requirements specified in the SRS document
into a structure that is suitable for implementation in some programming language.

• The purpose of the coding and unit testing phase of software development is to translate the
software design into source code.

• In the integration phase The modules are integrated , Integration is normally carried out
incrementally over a number of steps and During each integration step, the partially
integrated system is tested, until all the modules have been successfully integrated

• The goal of system testing is to ensure that the developed system conforms to its requirements
laid out in the SRS document.
• System testing usually consists of three different kinds of testing activities:
• α – testing: It is the system testing performed by the development team.
• β – testing: It is the system testing performed by a friendly set of customers.
• acceptance testing: It is the system testing performed by the customer himself
after the product delivery to determine whether to accept or reject the delivered
product.

• Maintenance involves performing any one or more of the following three kinds of activities:
• Corrective Maintenance: Correcting errors that were not discovered during the
product development phase.
• Perfective Maintenance: Improving the implementation of the system, and enhancing
the functionality of the system according to the customer’s requirements.
• Adaptive Maintenance: Porting the software to work in a new environment. For
example, porting may be required to get the software to work on a new computer
platform or with a new operating system.

Advantages of Waterfall Model Disadvantages of Waterfall Model


• It is a linear model. • It is difficult to define all requirements at
• It is a segmental model. the beginning of a project.
• It is systematic and sequential. • This model is not suitable for
• It is a simple one. accommodating any change.
• It has proper documentation. • A working version of the system is not
seen until late in the project’s life.
• It does not scale up well to large projects.
• It involves heavy documentation.
• We cannot go backward in the SDLC.
• There is no sample model for clearly
realizing the customer’s needs.
• There is no risk analysis.
• If there is any mistake or error in any
phase then we cannot make good
software.
What is the Iterative Waterfall Model ?

Errors should be detected in the same phase in which they are introduced.

Discuss Prototype Model :

Before starting actual development, a working prototype of the system should first be built.
A prototype is a toy implementation of a system:
• limited functional capabilities,
• low reliability,
• inefficient performance.

• final working prototype (with all user feedback incorporated) serves as an animated
requirements specification.
• Design and code for the prototype is usually thrown away
• Even though construction of a working prototype model involves additional cost - overall
development cost might be lower.
It's good for systems with unclear user requirements, systems with unresolved technical issues.
Discuss Evolutionary Model :

In Evolutionary model (successive versions or incremental model) The system is broken down into
several modules which can be incrementally implemented and delivered. First develop the core
modules of the system.

Advantages Disadvantages
• Users get a chance to experiment with a • Often, difficult to subdivide problems into
partially developed system functional units which can be
• Helps finding exact user requirements incrementally implemented and delivered.
• Core modules get tested thoroughly

Discuss Spiral Model :

Each loop of the spiral represents a phase of the software process. the innermost loop might be
concerned with system feasibility, the next loop with system requirements definition, the next one with
system design, and so on.

• Quadrant 1: Examine the risks that might hamper successful completion of a software project.
• Quadrant 2:a detailed analysis is carried out and Steps are taken to reduce the risk.
• Quadrant 3:Develop and validate the next level of the product.
• Quadrant 4:Review the results achieved so far with the customer and plan the next iteration
Discuss RAD Model :

• It is a development life cycle designed to give much faster development and higher quality
results than those achieved with the traditional life cycle.
• The development is distributed into component development teams.

Business Modeling: The information flow among business functions is defined by answering questions
like what information drives the business process, what information is generated, who
generates it, where does the information go, who process it and so on.

Data Modeling : The information collected from business modeling is refined into a set of data objects
(entities) that are needed to support the business.

Process Modeling :The data object defined in the data modeling phase are transformed to achieve
the information flow necessary to implement a business function.

Application Generation: Automated tools are used to facilitate construction of the software

Testing and Turn over: Many of the programming components have already been tested since RAD
emphasis reuse. This reduces overall testing time. But new components must be tested and all
interfaces must be fully exercised.
Discuss ITERATIVE-ENHANCEMENT MODEL

A software development technique in which requirement definition, design, implementation, and


testing occur in an overlapping, iterative manner, resulting in incremental completion of the overall
software product.

Advantages Disadvantages
• Early incremental can be implemented • A major system might require the
with fewer people. availability of new hardware.
• Develop high-risk or major function first. • Requires god planning and design
• Each release delivers an operational • Requires early definition of a complete
product. and fully functional system to allow for
• Customer can respond to each build. the definition of increments
• Uses “divide and conquer” breakdown of • Well-defined module interfaces are
tasks. required (some will be developed along
• Lowers initial delivery is faster. before others)
• Risk of changing requirements is reduced. • Total cost of the complete system is not
lower

Note: Agile Model Not Documented.


What is the steps of determining requirements

Types of Requirements

The requirements are classified into the following three types:


• Those that should be absolutely met.
• Those that are highly desirable but not necessary.
• Those that are possible but could be eliminated.

On the basis of their functionality, the requirements are classified into the following two types:
• Functional requirements: They define factors, such as I/O formats, storage structure,
computational capabilities, timing, and synchronization.
• Non-functional requirements : They define the properties or qualities of a product including
usability, efficiency, performance, space, reliability, portability, etc.

PROCESS OF REQUIREMENTS ENGINEERING


• User Requirement:
User requirements are statements, in a natural language plus diagrams, of what services
the system is expected to provide to system users and the constraints under which it must
operate.
• System Requirement:
System requirements are more detailed descriptions of the software system’s functions,
services, and operational constraints.

Requirements Readers:

Vous aimerez peut-être aussi