




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Implementing and Testing: Programming language characteristics, fundamentals, languages, classes, coding style efficiency. Testing: Objectives, black box ...
Typology: Summaries
1 / 128
This page cannot be seen from the preview
Don't miss anything!





























































































Module I (10 Lectures)
Introductory concepts: Introduction, definition, objectives, Life cycle – Requirements analysis and specification.
Design and Analysis: Cohesion and coupling, Data flow oriented Design: Transform centered design, Transaction centered design. Analysis of specific systems likes Inventory control, Reservation system.
Module II (10 Lectures)
Object-oriented Design: Object modeling using UML, use case diagram, class diagram, interaction diagrams: activity diagram, unified development process.
Module III (10 Lectures)
Implementing and Testing: Programming language characteristics, fundamentals, languages, classes, coding style efficiency. Testing: Objectives, black box and white box testing, various testing strategies, Art of debugging. Maintenance, Reliability and Availability: Maintenance: Characteristics, controlling factors, maintenance tasks, side effects, preventive maintenance – Re Engineering – Reverse Engineering – configuration management – Maintenance tools and techniques. Reliability: Concepts, Errors, Faults, Repair and availability, reliability and availability models, Recent trends and developments.
Module IV (10 Lectures)
Software quality: SEI CMM and ISO-9001. Software reliability and fault-tolerance, software project planning, monitoring, and control. Computer-aided software engineering (CASE), Component model of software development, Software reuse.
Book:
Lecture 1: Introduction to Software Engineering
Lecture 2: Definition & Principles of Sofware Engg., Software Characteristics
Lecture 3: Causes & Solution of Software Crisis, Software Application and
can be engineer or developed and second thing is software is complex in nature. Important of software are due to much reason as it is used in:
i)Business decision making Ex- accounting s/w, billing s/w ii)For scientific research & engineering problem solving. Ex-weather forecasting system, space research s/w
iii)It is embedded in multifunctional systems such as medical, telecom entertainment etc.
Ex-s/w for medical patient automation, s/w of GSM/CDMA service provides.
Software Quality
Several quality factors associated with software quality are as following:
Types of software:-
Computer s/w is mainly divided into two types.
a)system s/w Application s/w consists of programs to perform user oriented tasks. System s/w includes the operating system & all the utilities to enable the computer to run. Ex- window operating system b)application s/w
Application s/w consists of programs to perform user oriented tasks. Ex-word processor, database management. Application s/w sits about the system s/w because it needs help of the system s/w to run.
Program vs Software product
PROGRAMS PRODUCTS Set of instruction related each other Collection of program designed for specific task.
Programs are defined by individuals for their personal use.
A sum product is usually developed by a group of engineers working as a team.
Usually small size. Usually large size. Single user. Large no of users. Single developer. Team of developer. Lack proper documentation. Good documentation support. ADHOC development. Systematic development.
Lack of UI. Good UI.
Have limited functionality. Exhibit more functionality.
Types of software products :
-Generic products: [This type of software product are developed by a organization and sold on open market to any customer], (System software,, application software )
Source code
Object code
programs
documenta Operating tion procedure
Software engineering is a layered technology. The bedrock that supports software engineering is a quality focus. The foundation for software engineering is the process layer. Software engineering process is the glue that holds the technology layers together and enables rational and timely development of computer software. Process defines a framework for a set of key process areas that must be established for effective delivery of software engineering technology. The key process areas form the basis for management control of software projects and establish the context in which technical methods are applied, work product (models, documents, data, reports, forms, etc.) are produced, milestones are established, quality is ensured, and change is properly managed.
Software engineering methods provide the technical how-to's for building software. That encompass requirements analysis, design, program construction, testing, and support.
Software engineering methods rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques.
Software engineering tools provide automated or semi-automated support for the process and the methods. When tools are integrated so that information created by one tool can be used by another, a system for the support of software development, called computer-aided software engineering(CASE), is established. CASE combines software, hardware, and a software engineering database (a repository containing important information about analysis, design, program construction, and testing) to create a software engineering environment analogous to CAD/CAE (computer-aided design/engineering) for hardware.
S/W CHARACTERISICS:- Characteristics of a s/w can be easily distinguished as of from the h/w.
Software engineering appears to be among the few options available to tackle the present software crisis. Let us explain the present software crisis in simple words, by considering the following. The expenses that organizations all around the world are incurring on software purchases compared to those on hardware purchases have been showing a worrying trend over the years (as shown in fig. 1.6)
Organizations are spending larger and larger portions of their budget on software not only are the software products turning out to be more expensive than hardware, but also presented lotst of other problems to the customers such as: software products are difficult to alter, debug, and enhance; use resources non optimally; often fail to meet the user requirements; are far from being reliable; frequently crash; and are often delivered late. Due to ineffective development of the product characterized by inefficient resource usage and time and cost over-runs. Other factors are larger problem sizes, lack of adequate training in software engineering, increasing skill shortage, and low productivity Improvements.
S/W crisis from programmer point of view:-
i)Problem of compatibility. ii)Problem of Portability. iii)Proclaiming documentation. iv)Problem of pirated s/w. v)Problem in co-ordination of work of different people. vi)Problem of proper maintenance.
S/W crisis from user point of view:-
i)s/w cost is very high. ii)Price of h/w grows down. iii)Lack of development specification. iv)Problem of different s/w versions. v)Problem of bugs or errors.
S/W applications can be grouped into 8 different area as given below. i)System s/w ii)Real-time s/w iii)Embeded s/w iv)Business s/w v)PC s/w vi)AI s/w vii)Web-based s/w viii)Engineering & scientific s/w
S/W engineering processes:-
Process : The process is a series of states that involves activities, constraints, resources that produce an intended output of some kind. Or it is a state that takes some input and produced output Software process : A s/w process is a related set of activities & sub processes that are involved in developing & involving a s/w system. There are four fundamental process activities carried out by s/w engineering while executing the s/w process are. i) s/w specification The functionality of s/w & constraints on its operation must be defined. ii)s/w development
Software Product: Outcome of software project is known as software product.
Software process vs software project vs software product
Software Process
Software Product-n
Software Project-2 Software Project-n
Software Product-1 (^) Software Product- 2
Software Project-
S/W LIFE CYCLE METHOD:-
Introduction:- A software life cycle model (also called process model) is a descriptive and diagrammatic representation of the software life cycle. A life cycle model represents all the activities required to make a software product transit through its life cycle phases. It also captures the order in which these activities are to be undertaken.
In other words, a life cycle model maps the different activities performed to develop software product from its inception to retirement. Different life cycle models may map the basic development activities to phases in different ways.
The need for s/w life cycle model:- -The development team must identify a suitable life cycle model for the particular project and then adhere to it. -Without using of a particular life cycle model the development of a software product would not be in a systematic and disciplined manner. So when a software product is being developed by a team there must be a clear understanding among team members about when and what to do, Otherwise it would lead to chaos and project failure.
-A software life cycle model defines entry and exit criteria for every phase. A phase can start only if its phase-entry criteria have been satisfied. So without software life cycle model the entry and exit criteria for a phase cannot be recognized. Without software life cycle models (such as classical waterfall model, iterative waterfall model, prototyping model, evolutionary model, spiral model etc.) it becomes difficult for software project managers to monitor the progress of the project.
Different s/w life cycle model:-
Many life cycle models have been proposed so far. Each of them has some advantages as well as some disadvantages. A few important and commonly used life cycle models are as follows:
a.Classical Waterfall Model b. Iterative Waterfall Model c. Prototyping Model d. Evolutionary Model e.Spiral Model
Activities in each phase of the life cycle:
The main aim of feasibility study is to determine whether it would be financially and technically feasible to develop the product. Rough understanding between the team members about estimate based on the client side requirement. After over all discussion they search for variety of solution on the basis of kind of resources and time requirement etc.
Activities undertaken during requirements analysis and specification: -
The aim of the requirements analysis and specification phase is to understand the exact requirements of the customer and to document them properly. This phase consists of two distinct activities, namely
-Requirements gathering and analysis, and -Requirements specification
The goal of the requirements gathering activity is to collect all relevant information from the customer regarding the product to be developed. This is done to clearly understand the customer requirements so that incompleteness and inconsistencies are removed. -After all ambiguities, inconsistencies, and incompleteness have been resolved and all the requirements properly understood, the requirements specification activity can start. -During this activity, the user requirements are systematically organized into a Software Requirements Specification (SRS) document.
Activities undertaken during design: -
The goal of the design phase is to transform the requirements specified in the SRS document into a structure that is suitable for implementation in some programming language. During the design phase the software architecture is derived from the SRS document. Two distinctly different approaches are available: -the traditional design approach and
Activities undertaken during coding and unit testing:-
The purpose of the coding and unit testing phase (sometimes called the implementation phase) of software development is to translate the software design into source code. Each component of the design is implemented as a program module. The end-product of this phase is a set of program modules that have been individually tested then proceeds for next stage. During this phase, each module is unit tested to determine the correct working of all the individual modules. It involves testing each module in isolation way as this is the most efficient way to debug the errors identified at this stage.
Activities undertaken during integration and system testing: -
Integration of different modules is undertaken once they have been coded and unit tested. During the integration and system testing phase, the modules are integrated in a planned manner. Integration is normally carried out incrementally over a number of steps. During each integration step, the partially integrated system is tested and a set of previously planned modules are added to it. Finally, when all the modules have been successfully integrated and tested, system testing is carried out. 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.
This waterfall model allows us to correct the error committed during the developmental phase. The principle of detecting errors as close to their point of introduction as possible is known as phase containment of errors. These errors are not possible to be always detected at their point of occurrence. But, they must be detected as they are possible, because finding the errors at higher stage causes entire system testing hence cost is increased/high.
Development Maintenance Requirements Gathering
Initial design
Revised customer Build prototype requirements
Customer approved
[Fig: Prototyping life cycle model]
This model specify that before the actual system is being built the working model or the prototype system should be built in. Prototype means dummy, it is a modern and advance implementation system with limited functional capabilities & is comparatively inefficient with the actual system.
Need for a prototype in software development
There are several uses of a prototype. An important purpose is to illustrate the input data formats, messages, reports, and the interactive dialogues to the customer. This is a valuable mechanism for gaining better understanding of the customer’s needs. The possibilities may be:
This is something similar to what the architectural designers of a building do; they show a prototype of the building to their customer. The customer can evaluate whether he likes it or not and the changes that he would need in the actual product. A similar thing happens in the case of a software product and its prototyping model. Another reason for developing a prototype is that it is impossible to get the perfect product in the first attempt. Many researchers and engineers advocate that if you want to develop a good product you must plan to throw away the first version. The experience gained in developing the prototype can be used to develop the final product. A prototyping model can be used when technical solutions are unclear to the development team. A developed prototype can help engineers to critically examine the
Customer evolution of prototype
Design Implementation
Testing
Maintainance