Software Engineering Full Notes... B-Tech (C.S.) , Bsc (CS) , BCA....
WHAT IS SOFTWARE ENGINEERING ?
👉 It is a technique through which we can develop or create software for computer system and any other electronic devices.
* Software Engineering build these software by using designing and programming languages.
* In order to make complex software, we should use Software Engineering as well as to reduce the complexity, we should use Abstraction and Decomposition.
ABSTRACTION:- It is a process of removing unnecessary details and focusing on the overview, this allow the program to run faster.
DECOMPOSITION:- It is a process of breaking large, complex problem into smaller parts.
------------------------------------------------
Purpose of Software Engineering :
> To manage large software.
> For greater scalability.
> To manage the cost.
> To manage the dynamic nature of software.
> For better quality management.
-----------------------------------------------------
SDLC : It stands for Software Development life cycle model. It describes the sequence of phases or steps to develop any software.
It contain 3 main stages :-
1. Conception stage
2. Implementation stage
3. Maintenance
The SDLC model is classified into 6 catagories
1. Waterfall Model
2. Prototype Model
3. Spiral Model
4. RAD Model
5. Evolutionary Model
6. Component-based Development Model
`````````````````````````````````
Waterfall Model -
Waterfall model diagram |
Review :-
1. It is the simple and classical model of all.
2. This model is also known as linear sequential model.
3. This model is the theoretically model not a practical model.
4. This model is suitale for small projects.
5. In this model, once a phase is successfully completed then only we can move to the next phase, so there is no overlapping between the phases.
6. Each phase has a well defined task and review process.
Dis-advantages-
1. Not use for big task.
2. We cant move back in last phase.
3. This Model contain high risk.
4. It is poor model for complex and object oriented projects.
````````````````````````````````````````````````````````````````````````````````
Prototype Model -
Review:-
1. It is a very famous software development model.
2. We can also use the prototype model with other model.
3. It is an iterative development cycle between client and developer.
Advantages-
1. If users are not satisfied with the prototype, then a new prototype is created again.
2. Costomer feedback is available.
3. Error can be detected at earlier stage.
Disadvantage-
1. Total dependency on prototype.
2. Sometime it takes long time.
````````````````````````````````````````````````````````````````
Spiral Model -
Review :-
1. It is also called meta model because it contain all the life cycle model.
2. The main purpose of spiral model to reduce the risk in project.
3. This model is mainly suitable for large and complex project.
4. Best technology is used inside the spiral model.
Dis-advantages -
1. The cost of project will be high.
2. It is not suitable for small project.
3. Each loop contain four quadrant so takes more time to complete.
```````````````````````````````````
RAD Model -
* The RAD (Rapid Application Development) model is based on prototyping and iterative development with no specific planning involved. The process of writing the software itself involves the planning required for developing the product.
````````````````````````````````````````````````````````````````````````````````````````````
Evolutionary Models -
- It is used in large projects where you can easily find modules for incremental implementation. Evolutionary model is commonly used when the customer wants to start using the core features instead of waiting for the full software.
- Evolutionary model is also used in object oriented software development because the system can be easily portioned into units in terms of objects.
* The SRS consists of all necessary requirements required for the potential development.
* SRS documents is actually an agreements between the client and developer.
Parts of SRS documents -
1. Functional requirement of the system.
2. Non-Functional requirement of the system.
3. Goal of implementation.
Characteristics of SRS:
1. Complete
2. Consistent
3. Modifiable
4. Feasible
5. Testable
6.Correct
7.Verifiable
💨 Without proper SRS document, it is very difficult to provide the maintenance for the engineers.
``````````````````````````````````````````````````````````````````````````````````````````
Software Designing : Software design is a very important phase in the SDLC. It is a technique through which we can design a meaningful representation of something that we want to built.
* It is a process by which the requirement ( SRS ) are translated into blueprint for creating a software.
* The blueprint g DDEives us the complete details of working software.
* It is also reduce efforts and error that came during design.
* The entire software designing concept is divided into 2 parts :
1. Top or high level design
2. Detail or internal design
`````````````````````````````````````````````````````````````
Coupling and Cohesion : We represent coupling in Top Level Design and its describve the inter-dependancy and interaction between the module of a software and coupling should be low for better software design.
Types of coupling -
1. Content Coupling
2. Common Coupling
3. External Coupling
4. Control Coupling
5. Stamp Coupling
6. Data Coupling
*Cohension represent detail design and it describe how the element in a particular module are closely related to each other and it should be high for better software design.
Types -
1. Functional Cohesion
2. Sequentional Cohesion
3. Communicational Cohesion
4. Procedural Cohesion
5. Temporal Cohesion
6. Logical Cohesion
7. Co-Incidental Cohesion
``````````````````````````````````````````````````````````````````````````````````
Different Approach Of Software Design -
1. Functional Oriented Design ( FOD )
2. Object Oriented Design ( OOD )
---------------------------------------------
#01 Functional Oriented Design - In FOD, the Top-Level module is successfully decomposed into more sub-modules where each module has a well defined task.
#02 Object Oriented Design - In OOD, instead of concentrating on function we concentrate upon object, an object contains both data and function which are used to create application.
* In ODD, the entire stystem is viewed as an object.
* Each objects has its own state and behaviour.
`````````````````````````````````````````````````
DFD:- It stands for "Data Flow Diagram". Itr is also known as Bubble Chart through which we can represent the flow of data graphically in an information system.
* By using the DFD, we can easily understand the overall functionality of system because diagram represent the incoming data flow, outcoming data flow.
* It describe how data is processed in a system in term of input and output.
* A DFD model uses a number of notation or symbol to represent flow of data :-
1. External Entity
2. Data Flow
3. Process or Bubble
4. Data Store
Rules of DFD:-
1.Each process should have atleast one input and one output.
This comment has been removed by the author.
ReplyDelete