0% found this document useful (0 votes)
50 views4 pages

Software Engineering Syllabus Overview

The syllabus for Software Engineering covers key topics including software development life cycles, requirement specification, design, coding, testing, project management, and quality assurance. It includes practical experiments such as comparative studies of SDLC models, creating software requirements specifications, designing data flow diagrams, and exploring CASE tools. The course aims to provide a comprehensive understanding of software engineering principles and practices through theoretical knowledge and hands-on experience.

Uploaded by

lo.m.are.spi.o
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views4 pages

Software Engineering Syllabus Overview

The syllabus for Software Engineering covers key topics including software development life cycles, requirement specification, design, coding, testing, project management, and quality assurance. It includes practical experiments such as comparative studies of SDLC models, creating software requirements specifications, designing data flow diagrams, and exploring CASE tools. The course aims to provide a comprehensive understanding of software engineering principles and practices through theoretical knowledge and hands-on experience.

Uploaded by

lo.m.are.spi.o
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Syllabus : Software Engineering

Theory
Unit 1: Introduction
• Introduction to software engineering
• Importance of software
• Evolving role of software
• Software characteristics
• Software Components
• Software Applications
• Software Crisis
• Software engineering problems
• Software Quality, Reliability, Usability and Performance
• Software Development Life Cycle
• Software Process

Unit 2: Software Requirement Specification & Design


• Analysis, Principles, Water Fall Model, The Incremental Model, Prototyping Rapid Application
Development, Spiral model, agile process, extreme programming, Role of management in software
development
• Requirements Engineering Problem Analysis
• Requirements elicitation techniques
• Requirement specification
• Monitoring and Control
Software Design
• Design principles, problem, partitioning, abstraction, top-down and bottom-up design
• Structured approach functional versus object-oriented approach
• Design specifications and verification
• Monitoring and control
• Cohesiveness, coupling, fourth generation techniques
• Component level Design
• Fourth Generation Techniques
• Introduction to Data Flow Diagrams
• Use of DFD’s for a good software design
• Introduction of OOD and UML
Unit 3: Coding & Testing
• Structured programming
• Information hiding
• Programming style and internal documentation
• Coding Walk through
Testing
• Testing principles
• Levels of testing
• Software testing strategies
• Verification and validation
• Unit testing
• Integration Testing
• Alpha & Beta testing
• System testing and debugging

Unit 4: Software Project Management


• The management spectrum (The people, the product, the process, the project)
• Cost estimation
• Project scheduling
• Software configuration management (SCM)
• Software maintenance
• Project monitoring
• Risk management

Unit 5: Software Quality Assurance & CASE Tools


• Software Quality Assurance SQ
• SEI capability maturity model, CMM.
• CASE tools (Computer Aided Software Engineering): CASE and its scope, CASE support in software
life cycle, documentation
• Reverse Software Engineering
• Software Re-engineering
PMC303
List of Experiments
1. Comparative Study of SDLC Models
• Objective: Compare and contrast different SDLC models (Waterfall, Prototyping, Evolutionary,
RAD, Spiral).
• Procedure: Research each model, create a comparative chart highlighting their features,
advantages, and disadvantages, and discuss scenarios where each model is most suitable.
• Expected Outcome: Understanding of the strengths and weaknesses of various SDLC models
and their appropriate application.
• Case Study: College Management Software
2. Creating a Software Requirements Specification (SRS) Document
• Objective: Develop a comprehensive SRS document for a hypothetical software project.
• Procedure: Conduct requirement analysis, distinguish between functional and non-functional
requirements and document them according to IEEE standards.
• Expected Outcome: A well-documented SRS that includes all the requirements and
specifications for a software project.
• Case Study: Airline Reservation System
3. Designing a Data Flow Diagram (DFD)
• Objective: Create a DFD for a given software system.
• Procedure: Identify the processes, data stores, and data flow in the system, and construct
context-level DFDs.
• Expected Outcome: A set of DFDs that represent the data flow within the software system.
• Case Study: Employee and Company
4. Object-Oriented Design using UML
• Objective: Design an object-oriented system using UML diagrams.
• Procedure: Develop use case, class, activity, sequence, and state machine diagrams for a
hypothetical software project.
• Expected Outcome: A set of UML diagrams that provide a detailed design of the object-oriented
system.
• Case Study: Student and Teacher Class
5. Coding Standards and Guidelines
• Objective: Implement a piece of software following coding standards and guidelines.
• Procedure: Write code for a small software module, adhering to industry-standard coding
conventions, document the code, and perform a code review.
• Expected Outcome: Clean, well-documented code that follows best practices and coding
standards.
• Case Study: Sorting Methods
6. Software Testing
• Objective: Conduct various types of software testing on a sample software module.
• Procedure: Create test cases and test suites, perform unit testing, integration testing, and
regression testing, and document the results.
• Expected Outcome: A comprehensive test report detailing the tests conducted, the results, and
any identified defects.
• Case Study: Voting Application, where a person’s age is checked for eligibility.
7. Software Maintenance and Re-engineering
• Objective: Perform maintenance and re-engineering on an existing software system.
• Procedure: Identify and document maintenance tasks, perform forward and reverse
engineering, and re-engineer parts of the software to improve its performance or
maintainability.
• Expected Outcome: Improved and well-documented software that demonstrates the
maintenance and re-engineering processes.
• Case Study: Maintenance of Website
8. Cost Estimation and Project Scheduling
• Objective: Estimate the cost and create a project schedule for a software development project.
• Procedure: Use cost estimation techniques (e.g., COCOMO model), create a work breakdown
structure (WBS), and develop a Gantt chart for project scheduling.
• Expected Outcome: A detailed cost estimation report and a project schedule that outlines the
timeline and resources required for the project.
• Case Study: Imagine a bank application for simulating all the activities in a bank.
9. Risk Management in Software Projects
• Objective: Identify and manage risks in a software development project.
• Procedure: Perform a risk assessment, identify potential risks, evaluate their impact and
likelihood, and develop a risk management plan with mitigation strategies.
• Expected Outcome: A risk management plan that identifies and addresses potential risks in the
software project.
• Case Study: Security-related Software
10. CASE Tools in Software Development
• Objective: Explore the use of CASE tools in different stages of the software development life
cycle.
• Procedure: Use CASE tools for documentation, project management, reverse engineering, and
code generation. Evaluate their effectiveness and impact on productivity.
• Expected Outcome: An understanding of the benefits and limitations of CASE tools in software
development, demonstrated through practical use cases.
• Case Study: Use of readymade components in preparing editor

Common questions

Powered by AI

Structured programming enhances software reliability and maintainability by enforcing a disciplined approach to code organization. It uses concepts such as sequence, selection, and iteration to create clear, logical, and consistent code structures. This reduces complexity, making it easier to test, debug, and modify code, thereby improving reliability and simplifying maintenance tasks .

Comprehensive software testing strategies are crucial for delivering high-quality products by systematically validating functionality, performance, and compliance with requirements. Testing strategies such as unit testing, integration testing, system testing, and acceptance testing help identify defects early, ensuring reliability and user satisfaction. A thorough testing approach reduces the risk of failures in the production environment, minimizing costly post-deployment patches and customer dissatisfaction .

Cohesive components focus on a single task, making them easier to understand and maintain as changes affect a limited part of the system. Loosely coupled components interact minimally with each other, allowing changes in one component with minimal impact on others, enhancing flexibility and reducing maintenance effort. Both contribute to better software performance by allowing independent optimization and simplifying debugging .

Requirement specification acts as a blueprint for the software, ensuring all stakeholder needs are systematically documented, clear, and agreed upon before development begins. This prevents miscommunications and scope creep, which are common causes of software crises, leading to project delays and failures. A detailed requirement specification minimizes risks and contributes to successful project outcomes by aligning development with business objectives .

Adhering to software design principles such as modularity, abstraction, and encapsulation improves software quality by making systems more understandable, maintainable, and scalable, which reduces the likelihood of errors and eases future modifications. Ignoring these principles may lead to tightly coupled and poorly structured systems that are difficult to understand, test, and maintain, increasing the risk of defects and failures .

The SEI Capability Maturity Model (CMM) enhances software project quality by providing a structured framework for process improvement across five maturity levels, from initial to optimizing. This structured approach helps organizations to develop standardized processes, enforce best practices, and enable continuous improvement. It leads to more predictable and controllable project outcomes, reducing defects and increasing client satisfaction due to consistent process quality .

Risk management significantly impacts software project success by proactively identifying, evaluating, and mitigating risks. It helps in anticipating potential threats before they affect the project, enabling swift counteractions. Common mitigation strategies include risk avoidance, transferring risk, risk diversification, and contingency planning, ensuring resources are proactively allocated to areas with the highest risk potential .

CASE tools automate software development activities such as analysis, design, coding, and documentation, enhancing productivity and consistency. They facilitate collaboration, streamline project management, and support reverse engineering. However, they can be costly, complex to integrate, and require training. Their effectiveness diminishes if not fully adopted or if the tools fail to meet specific project needs .

UML diagrams provide a visual representation of the software structure and behavior, aiding in the understanding and communication of object-oriented designs. Class diagrams depict the static structure of the system by showing classes and their relationships, while sequence diagrams capture the dynamic interaction between objects over time. This contributes to effective design by clarifying complex interactions, ensuring consistency, and facilitating stakeholder communication and validation .

The Waterfall model is a linear and sequential approach best suited for projects where requirements are well understood and unlikely to change. The Prototyping model involves creating a working prototype to understand requirements better and is ideal for systems where user needs are not well understood. Evolutionary development focuses on delivering systems gradually through multiple iterations, useful in environments with evolving requirements. RAD (Rapid Application Development) emphasizes quick development and iteration, fitting dynamic projects needing rapid delivery. The Spiral model combines iterative development with risk management, allowing for flexibility and ongoing refinement, suited for large, complex, and high-risk projects .

You might also like