lecture notes on software engineering & ooad code: mca, Summaries of Engineering

Implementing and Testing: Programming language characteristics, fundamentals, languages, classes, coding style efficiency. Testing: Objectives, black box ...

Typology: Summaries

2021/2022

Uploaded on 09/07/2022

nabeel_kk
nabeel_kk 🇸🇦

4.6

(65)

1.3K documents

1 / 128

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
LECTURE NOTES ON
SOFTWARE ENGINEERING & OOAD
CODE: MCA -201
By
Asst. Prof. Mrs. Mrs Etuari Oram
Asst. Prof. Mr Sanjib Kumar Nayak
Asst. Prof. Mr Bighnaraj Naik
SYLLABUS
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.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download lecture notes on software engineering & ooad code: mca and more Summaries Engineering in PDF only on Docsity!

LECTURE NOTES ON

SOFTWARE ENGINEERING & OOAD

CODE: MCA -

By

Asst. Prof. Mrs. Mrs Etuari Oram

Asst. Prof. Mr Sanjib Kumar Nayak

Asst. Prof. Mr Bighnaraj Naik

SYLLABUS

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:

  1. Rajib Mall, Fundamentals of Software Engineering, PHI.
  2. R.S. Pressman, Software Engineering Practitioner’s Approach, TMH.
  3. S.L. Pfleeger, Software Engineering – Theory and Practice, 2nd^ Edition, Pearson Education.
  4. M.L. Shooman, Software Engineering – Design, Reliability and Management, McGraw Hill.

Contents

Module: I

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:

  • Portability: A software product is said to be portable, if it can be easily made to work in different operating system environments, in different machines, with other software products, etc.
  • Usability: A software product has good usability, if different categories of users (i.e. both expert and novice users) can easily invoke the functions of the product.
  • Reusability: A software product has good reusability, if different modules of the product can easily be reused to develop new products.
  • Correctness: A software product is correct, if different requirements as specified in the SRS document have been correctly implemented.
  • Maintainability: A software product is maintainable, if errors can be easily corrected, new functions can be easily added to the product, and the functionalities of the product can be easily modified, etc.

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

  1. People who are developing software were consistently wrong in their estimation of time, effort and cost.
  2. Reliability and maintainability was difficult of achieved
  3. Fixing bug in a delivered software was difficult
  4. Delivered software frequently didn’t work
  5. Changes in ration of hw to s/w cost
  6. Increased cost of software maintenance
  7. Increased demand of software
  8. Increased demand for large and more complex software system
  9. Increasing size of software

S/W ENGINEERING PRINCIPLES:-

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.

Lecture Note : 3

CAUSES AND SOLUTION FOR S/W CRISIS:-

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 Application:-

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-

Lecture Note : 4

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:

  • Activities undertaken during feasibility study: -

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

  • the object-oriented design approach.

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.

Lecture Note : 5

b. ITERATIVE WATERFALL LIFE CYCLE MODEL:-

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.

c. PROTYPING/RAPID PROTOTYPING MODEL:-

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:

  • how the screens might look like
  • how the user interface would behave
  • how the system would produce outputs

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