Unit 1
- Software
- Introduction
- Set of program.
- Characteristics
- Functionality
- Relability
- Components
- Applications
- Software Process Model
- Software Development Life Cycle
- Introduction
- Models
- Introduction
- Waterfall Model
- Spiral Model
- Prototyping Model
- Software Poject Management
- Introduction
- Concept
- Components
- Metrics
- Introduction
- Role of metrics
- Types of Metrics
- Product Metrics
- Process Metrics
- Project Metrics
- Normalization of Metrics
- Size Oriented Metrics
- Function Oriented Metrics
- Measurement
- Introduction
- Principles of Measurement
- Formulation
- Colection
- Analysis
- Interpretation
- Feedback
- Types of Measurement
- Direct Measurement
- Indirect Measurement
Unit 2
- Software Project Planning
- Objective
- Guidelines
- Process
- Activities
- Decomposition Techniques
- Software Sizing
- Problem Based Estimation
- Cost estimation Model
- COCOMO Model
- The software Equation
- System Analysis
- Introduction
- Design
- Principles of Structured Analysis
- Requirement Analysis
- Software requirement Specification
- Entity Relationship Diagram
- Data Dictionary
- Notations Tables of Data Dictionary
Unit 3
- Software Design
-
Introduction
- Mechanism to convert user requirements into sutable forms which helps the progrmmer in software coding and implementaion.
- SRS documentaion into simple form (
design
). - Representing the clint's requirement.
- In
SDLC
phase Design is the first steps to move the consentration from problem domain to solution domain. - Elements of a System
- Architecture : Flowchart
- Modules : Focus on specific task like in sign up page username section is a kind of module that only takes the name of user. Password section takes the password.
- Component : Perform a perticular functionality like sign up page store the data of user in database. login page porvide permission to authorized user.
- Interface : Connection of diffrent components and make a interface. eg: connection of components like signup page, login page, Home page, Product page, and Contact page makes the interface of a website.
- Data : To manage the information of the system.
- Levels of Software Design
- Interface Design : UI/UX Design, Ignored Working of internal system like flow of data.
- Architecture Design : Focused on flow of data from module to module and component to component.
- Detailed Design : Focused on flow of the data how modules intract with other modules and components eg: modules of login page provide data to the server that gives permission to access the home page components.
-
Objective
- Correctness : Correctly implemented.
- Understandability : Easy to understand and implement.
- Efficiency : consider-Resource,time & cost.
- Maintainability : Easy to update & modify.
-
Principles
- Should not suffer from "Tunnel Vision" : Not only focus on completing the process but also focus on other effects.
- Tracable to analysis model : Easy to trace all the steps and follow all the software requirements to devlop high quality products.
- Should not "Reinvent the wheel" : Don't create a thing that is already exist. It will increase the overall development.
- Accommodate Change : Software should adjust there self according the user requirment.
- Quality : During the evaluation of the design, the quality of the design needs to be checked and focused upon.
- Review to discover error : During the evaluation of the design, check the comming error and improve it.
- Design is not coding and coding is not design : Design means to implement the logical way to sovle the problem and coding means to use the programming language to solve the logic.
-
Concepts
- Abstraction : Hidding the complex logic from user.
- Modularity : To implement the complex component, partition the component into smaller modules each dealing with a single task.
- Architecture : It acts as a software development blueprint and a flowchart.
- Refinement : Refinement is removing impurities and improving the quality of something. It deals with identifying and correcting possible errors.
- Information and data hiding : give permission to access the different module. eg: Permission like private(Restricated from outside class) and public(have access of any outside calss).
-
- Methodologies
- Introduction
- Understand the problem
- Focused on User requirment
- Defining overall system design
- Data Design
- how data will be stored, accessed, manipulated, and secured to meet the requirements of the software application.
- Data Modeling : Conceptual representation of data entity, attributes, relationship within a system. eg: ERD (Entity relationship diagram).ย
- Database design : Converting conceptual representation of data itno a physical database. eg: tables,columns,data type etc.
- Data security and access : To provide the access to the data accroding to the importance and also use retional database like NoSql.
- Architectural Design
- Over all stractural of a system deals with components, intrface and communication between the modules and components. Mainly focused on modularity,scalablity and maintainability.
- Component Identification : Deal with componet and there functionality.
- Interface Design : Deal with communication between components.
- Procedural Design
- Focused area system functionality and effciently.
- Algorithm Design : Design specific algorithm for specific task.
- Coding : Implement by programming language.
- Object Oriented Concepts
- Key aspact are modularity, code reuseablity and maintainability.
- Class : Perform specific task.
- Object : Define functionaliy of an component using diffrent classes.
- Inheritance : Allow sub calsses to use the specification of parent class.
- Polymorphism : Using same code for diffrent uses also.
- Introduction
- Testing
- Introduction
- Testing the the operation to find the error using some techiniques like verification and validation.
- Testing Fundamentals
- Operability
- If a system is designed and implemented with quality in mind, relatively few bugs will block the execution of tests.
- Observability
- "What you see is what you test". Input provided as part of testing produce distinct outputs.
- Cntrollability
- "The better we can control the software, the more testing can be automated and optimized." All possible outputs can be generated through some combination of input.
- Simplicity
- "The less there is to test, the more quickly we can test it." The program should exhibit functional simplicity, structural simplicity, and code simplicity.
- Understandability
- The more information we have, the smarter we will test."
- Operability
- Objective of Software testing
- d
- Priciples of testing fundamentals
- Software Testability
- Test Cases
- Types of test cases
- Unit testing
- White Box Testing
- Black Box Testing
- Testing Strategies
- Validation
- Verification
- Integration Testing
- Introduction