this pdf file includes software development life cycle, requirement analysis and specification, project management, design, coding, testing, maintenance and quality reuse and case tools.
This document provides information on the Software Engineering course with code 210253. It is a 3 credit course with a mid-semester exam worth 30 marks and an end-semester exam worth 70 marks. The syllabus covers topics like introduction to software engineering, software process models, prescriptive process models (waterfall, incremental, evolutionary), and agile software development. It also discusses concepts like software engineering fundamentals, process frameworks, generic process activities, prescriptive process models, evolutionary models, concurrent development model, and principles of software engineering practice.
Software Engineering is the course with code 21CS47 taught over 3 hours per week for a total of 40 contact hours. It has both CIE and SEE components worth 50 marks each. The course aims to teach students about software engineering principles, processes, requirements engineering, system models, agile development, project management, and risks in software development. Key topics covered include the software development lifecycle, software quality metrics, software processes and process models, testing strategies, and project scheduling.
SE chp1 update and learning management .pptxssuserdee5bb1
The document provides an overview of software engineering concepts including definitions, types of software, software processes, life cycle models and the waterfall model. It defines software engineering as a discipline concerned with all aspects of software development and defines types of software such as system software and application software. The document also summarizes software engineering objectives, reasons for software failures, and the three R's of software engineering - reuse, re-engineering, and re-tooling. Finally, it provides a brief introduction to software process models including the waterfall model.
CASE (Computer Aided Software Engineering) tools automate activities across the software development lifecycle. They include upper case tools that support analysis and design, lower case tools that support coding, and integrated tools that support all phases. CASE tools play major roles in project management, data modeling, documentation generation, version control, and more. They provide advantages like improved quality, productivity, and cost savings through automation and consistency across the development process.
The document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and characteristics that make it different than other engineered products. The document also outlines some common software applications and categories. It defines the key activities in a generic software process including communication, planning, modeling, construction, and deployment. Finally, it provides examples of two case studies - an embedded system in an insulin pump and a patient information system for mental health care.
Social development club is a leading course content provider of India with a key focus on skilling courseware development. We deliver complete package required to deliver the Skill development program effectively. We develop NCVT and SSC aligned courses of all the domains and for all the schemes.
Contact: sdccourses@gmail.com, http://www.socialdevelopment.club
The document provides an introduction to software engineering. It defines software and describes its key attributes and classifications. It discusses what constitutes good software in terms of maintainability, dependability, efficiency and usability. The document also outlines different types of software and defines software engineering as a systematic approach to software analysis, design, implementation and maintenance. It compares software engineering to computer science and system engineering. Finally, it discusses the two main components of software engineering as the systems engineering approach and development engineering approach.
this pdf file includes software development life cycle, requirement analysis and specification, project management, design, coding, testing, maintenance and quality reuse and case tools.
This document provides information on the Software Engineering course with code 210253. It is a 3 credit course with a mid-semester exam worth 30 marks and an end-semester exam worth 70 marks. The syllabus covers topics like introduction to software engineering, software process models, prescriptive process models (waterfall, incremental, evolutionary), and agile software development. It also discusses concepts like software engineering fundamentals, process frameworks, generic process activities, prescriptive process models, evolutionary models, concurrent development model, and principles of software engineering practice.
Software Engineering is the course with code 21CS47 taught over 3 hours per week for a total of 40 contact hours. It has both CIE and SEE components worth 50 marks each. The course aims to teach students about software engineering principles, processes, requirements engineering, system models, agile development, project management, and risks in software development. Key topics covered include the software development lifecycle, software quality metrics, software processes and process models, testing strategies, and project scheduling.
SE chp1 update and learning management .pptxssuserdee5bb1
The document provides an overview of software engineering concepts including definitions, types of software, software processes, life cycle models and the waterfall model. It defines software engineering as a discipline concerned with all aspects of software development and defines types of software such as system software and application software. The document also summarizes software engineering objectives, reasons for software failures, and the three R's of software engineering - reuse, re-engineering, and re-tooling. Finally, it provides a brief introduction to software process models including the waterfall model.
CASE (Computer Aided Software Engineering) tools automate activities across the software development lifecycle. They include upper case tools that support analysis and design, lower case tools that support coding, and integrated tools that support all phases. CASE tools play major roles in project management, data modeling, documentation generation, version control, and more. They provide advantages like improved quality, productivity, and cost savings through automation and consistency across the development process.
The document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and characteristics that make it different than other engineered products. The document also outlines some common software applications and categories. It defines the key activities in a generic software process including communication, planning, modeling, construction, and deployment. Finally, it provides examples of two case studies - an embedded system in an insulin pump and a patient information system for mental health care.
Social development club is a leading course content provider of India with a key focus on skilling courseware development. We deliver complete package required to deliver the Skill development program effectively. We develop NCVT and SSC aligned courses of all the domains and for all the schemes.
Contact: sdccourses@gmail.com, http://www.socialdevelopment.club
The document provides an introduction to software engineering. It defines software and describes its key attributes and classifications. It discusses what constitutes good software in terms of maintainability, dependability, efficiency and usability. The document also outlines different types of software and defines software engineering as a systematic approach to software analysis, design, implementation and maintenance. It compares software engineering to computer science and system engineering. Finally, it discusses the two main components of software engineering as the systems engineering approach and development engineering approach.
The document discusses software quality attributes based on McCall's quality factors. It describes McCall's three categories of quality factors:
1) Product Operation - factors like correctness, reliability, usability, and integrity that relate to a software product's operational characteristics.
2) Product Revision - factors like maintainability, flexibility, and testability that relate to a software product's ability to undergo change.
3) Product Transition - factors like portability, reusability, and interoperability that relate to a software product's adaptability to new environments. The document notes that some quality factors can be directly measured while others can only be indirectly measured.
Week_01-Intro to Software Engineering-1.ppt23017156038
This document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and different types of software applications. The document also introduces a generic software engineering process framework consisting of communication, planning, modeling, construction, and deployment activities. Finally, it provides examples of an embedded insulin pump control system and a patient information system for mental health care to illustrate software engineering concepts and processes.
This document provides an introduction to a course on software engineering. It discusses key topics that will be covered in the course including software process models, requirement engineering, software design, quality engineering, project management, and maintenance. It also outlines the course structure, learning outcomes, assessment criteria, and references. The course aims to introduce students to fundamental software engineering principles and practices.
Introduction Of Software Engineering.pptxAnimeshMani4
Software engineering is the process of developing reliable software through systematic principles and methodologies. It involves phases like requirements gathering, design, development, testing, and maintenance. Software engineering ensures high quality through practices such as modularity, abstraction, encapsulation, testing, and change management. It also provides tools and processes to help teams successfully develop software.
This document discusses key concepts in software engineering. It defines software engineering as the systematic development of software using scientific principles and methods. It discusses different types of software (S-type, P-type, E-type) based on their evolution characteristics. The document also covers software paradigms, components, characteristics, qualities, and evolution process. It notes that software engineering aims to develop efficient and reliable software through well-defined principles and procedures.
The document provides an overview of software engineering concepts including the software engineering process, prescriptive process models (waterfall model, V-model, incremental model), evolutionary process models (prototyping), and software engineering principles. It defines software engineering and discusses the software engineering layered technology of quality focus, process layer, methods, and tools. It also describes common software process activities and umbrella activities applied throughout a software project.
This document provides an introduction to a software engineering course. It outlines the topics that will be covered, including software processes, requirements, design, coding, testing, and project management. It describes the learning objectives of explaining software engineering principles and techniques for developing quality software. Students will be assessed through exams, presentations, and laboratory work. References for further reading are also provided.
This document provides an introduction to software engineering and software project management. It defines software, software engineering, and a software process. Software engineering is described as the application of systematic and quantifiable approaches to software development, operation, and maintenance. A software process involves specification, requirements, development, validation, and evolution phases. Software project management is defined as the art and science of planning and leading software projects, and involves activities like proposal writing, planning, costing, monitoring, and personnel management. Key phases of software project management are planning, organizing, monitoring, and adjusting.
This document provides an overview of software engineering concepts covered in lecture notes. It discusses the software development life cycle (SDLC) which includes key stages like requirements gathering, design, coding, testing, integration and maintenance. The SDLC framework aims to develop software efficiently using a well-defined process. Software engineering principles like abstraction and decomposition are used to reduce complexity when developing large programs.
This document contains a lecture on software engineering from Dr. Syed Ali Raza. It discusses key topics like the Standish Report, different types of software, challenges in the field, and the importance of ethics. It also summarizes problem-solving approaches and common myths about both developing and managing software projects.
This document provides an overview of software engineering. It discusses key topics like software evolution, paradigms, characteristics, and the software development life cycle (SDLC). The SDLC is described as a structured sequence of stages to develop software, including communication, requirements gathering, feasibility study, system analysis, design, coding, testing, integration, implementation, and operation and maintenance. Software engineering aims to develop high-quality software using well-defined principles and methods, addressing issues like exceeding timelines and budgets seen in traditional software development.
software engineering , its characteristic ,changing nature of software,evolving nature of software,legacy software,generic view of software,process flow ,umbrella activity,CMMI,PROCESS ASSESSMENT ,team and personal software process
This document discusses various software engineering tools used at different stages of the software development lifecycle. It outlines tools for database development, programming, web development, software configuration management, design and analysis, and testing. Database tools like Oracle and MySQL are used to store and manage application data. Programming tools include IDEs and libraries that help with coding. Web development tools assist with designing web pages. SCM tools cover source control, building, installation, and defect tracking. Common design tools include data flow diagrams. Software testing tools help automate testing tasks.
The document provides information on software engineering and the software development process. It discusses software characteristics, applications, and engineering. It describes the software process, including activities like communication, planning, modeling, construction, and deployment. It also discusses process models like waterfall, incremental, RAD, evolutionary/prototyping, and spiral. The waterfall model is explained in detail with the phases of requirements, design, coding, testing, and deployment. Advantages and disadvantages of different models are provided.
The document provides an introduction to software engineering. It defines software engineering as an engineering discipline concerned with all aspects of software production. It discusses why software engineering is important given that errors in complex software systems can have devastating consequences, as shown through examples of software failures in air traffic control, satellite launches, and ambulance dispatch systems. The document also covers fundamental software engineering concepts like the software process, process models, and costs.
The document discusses the software crisis that occurred from 1960-1980 when many software projects unsuccessfully attempted to build large systems. This was due to increasing demands, low expectations, and a lack of problem understanding. Software engineering principles were developed to address this crisis by applying systematic and disciplined approaches. The key characteristics of software like maintainability and security are discussed. The software development process includes specification, design/implementation, validation, and evolution. Different software development models like waterfall, prototyping, and spiral are also summarized.
The document discusses various aspects of the software process including software process models, generic process models like waterfall model and evolutionary development, process iteration, and system requirements specification. It provides details on each topic with definitions, characteristics, advantages and diagrams. The key steps in software process are specified as software specifications, design and implementation, validation, and evolution. Generic process models and specific models like waterfall, evolutionary development, and incremental delivery are explained.
This document provides an overview of software and software engineering. It discusses that software is designed by engineers and used virtually everywhere. It also outlines important questions for software engineers, different types of software applications, challenges in software development, and realities of software engineering. The document emphasizes that software engineering applies systematic and disciplined approaches to develop reliable and efficient software economically. It also summarizes various software engineering processes, activities, principles, and that software is created to meet business needs.
Elementary Probability theory Chapter 2.pptxethiouniverse
The document discusses various software process models including waterfall, iterative, incremental, evolutionary (prototyping and spiral), and component-based development models. It describes the key activities and characteristics of each model and discusses when each may be applicable. The waterfall model presents a linear sequential flow while evolutionary models like prototyping and spiral are iterative and incremental to accommodate changing requirements.
Introduction to software engineering information.
How the concept of the software engineering discover.
Nature of the software with categorization.
Software Crises in software engineering.
Programming practice with the concept of software engineering.
Software Project management practice with the help software engineering.
Design and Patterns concepts also.
The document discusses software quality attributes based on McCall's quality factors. It describes McCall's three categories of quality factors:
1) Product Operation - factors like correctness, reliability, usability, and integrity that relate to a software product's operational characteristics.
2) Product Revision - factors like maintainability, flexibility, and testability that relate to a software product's ability to undergo change.
3) Product Transition - factors like portability, reusability, and interoperability that relate to a software product's adaptability to new environments. The document notes that some quality factors can be directly measured while others can only be indirectly measured.
Week_01-Intro to Software Engineering-1.ppt23017156038
This document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and different types of software applications. The document also introduces a generic software engineering process framework consisting of communication, planning, modeling, construction, and deployment activities. Finally, it provides examples of an embedded insulin pump control system and a patient information system for mental health care to illustrate software engineering concepts and processes.
This document provides an introduction to a course on software engineering. It discusses key topics that will be covered in the course including software process models, requirement engineering, software design, quality engineering, project management, and maintenance. It also outlines the course structure, learning outcomes, assessment criteria, and references. The course aims to introduce students to fundamental software engineering principles and practices.
Introduction Of Software Engineering.pptxAnimeshMani4
Software engineering is the process of developing reliable software through systematic principles and methodologies. It involves phases like requirements gathering, design, development, testing, and maintenance. Software engineering ensures high quality through practices such as modularity, abstraction, encapsulation, testing, and change management. It also provides tools and processes to help teams successfully develop software.
This document discusses key concepts in software engineering. It defines software engineering as the systematic development of software using scientific principles and methods. It discusses different types of software (S-type, P-type, E-type) based on their evolution characteristics. The document also covers software paradigms, components, characteristics, qualities, and evolution process. It notes that software engineering aims to develop efficient and reliable software through well-defined principles and procedures.
The document provides an overview of software engineering concepts including the software engineering process, prescriptive process models (waterfall model, V-model, incremental model), evolutionary process models (prototyping), and software engineering principles. It defines software engineering and discusses the software engineering layered technology of quality focus, process layer, methods, and tools. It also describes common software process activities and umbrella activities applied throughout a software project.
This document provides an introduction to a software engineering course. It outlines the topics that will be covered, including software processes, requirements, design, coding, testing, and project management. It describes the learning objectives of explaining software engineering principles and techniques for developing quality software. Students will be assessed through exams, presentations, and laboratory work. References for further reading are also provided.
This document provides an introduction to software engineering and software project management. It defines software, software engineering, and a software process. Software engineering is described as the application of systematic and quantifiable approaches to software development, operation, and maintenance. A software process involves specification, requirements, development, validation, and evolution phases. Software project management is defined as the art and science of planning and leading software projects, and involves activities like proposal writing, planning, costing, monitoring, and personnel management. Key phases of software project management are planning, organizing, monitoring, and adjusting.
This document provides an overview of software engineering concepts covered in lecture notes. It discusses the software development life cycle (SDLC) which includes key stages like requirements gathering, design, coding, testing, integration and maintenance. The SDLC framework aims to develop software efficiently using a well-defined process. Software engineering principles like abstraction and decomposition are used to reduce complexity when developing large programs.
This document contains a lecture on software engineering from Dr. Syed Ali Raza. It discusses key topics like the Standish Report, different types of software, challenges in the field, and the importance of ethics. It also summarizes problem-solving approaches and common myths about both developing and managing software projects.
This document provides an overview of software engineering. It discusses key topics like software evolution, paradigms, characteristics, and the software development life cycle (SDLC). The SDLC is described as a structured sequence of stages to develop software, including communication, requirements gathering, feasibility study, system analysis, design, coding, testing, integration, implementation, and operation and maintenance. Software engineering aims to develop high-quality software using well-defined principles and methods, addressing issues like exceeding timelines and budgets seen in traditional software development.
software engineering , its characteristic ,changing nature of software,evolving nature of software,legacy software,generic view of software,process flow ,umbrella activity,CMMI,PROCESS ASSESSMENT ,team and personal software process
This document discusses various software engineering tools used at different stages of the software development lifecycle. It outlines tools for database development, programming, web development, software configuration management, design and analysis, and testing. Database tools like Oracle and MySQL are used to store and manage application data. Programming tools include IDEs and libraries that help with coding. Web development tools assist with designing web pages. SCM tools cover source control, building, installation, and defect tracking. Common design tools include data flow diagrams. Software testing tools help automate testing tasks.
The document provides information on software engineering and the software development process. It discusses software characteristics, applications, and engineering. It describes the software process, including activities like communication, planning, modeling, construction, and deployment. It also discusses process models like waterfall, incremental, RAD, evolutionary/prototyping, and spiral. The waterfall model is explained in detail with the phases of requirements, design, coding, testing, and deployment. Advantages and disadvantages of different models are provided.
The document provides an introduction to software engineering. It defines software engineering as an engineering discipline concerned with all aspects of software production. It discusses why software engineering is important given that errors in complex software systems can have devastating consequences, as shown through examples of software failures in air traffic control, satellite launches, and ambulance dispatch systems. The document also covers fundamental software engineering concepts like the software process, process models, and costs.
The document discusses the software crisis that occurred from 1960-1980 when many software projects unsuccessfully attempted to build large systems. This was due to increasing demands, low expectations, and a lack of problem understanding. Software engineering principles were developed to address this crisis by applying systematic and disciplined approaches. The key characteristics of software like maintainability and security are discussed. The software development process includes specification, design/implementation, validation, and evolution. Different software development models like waterfall, prototyping, and spiral are also summarized.
The document discusses various aspects of the software process including software process models, generic process models like waterfall model and evolutionary development, process iteration, and system requirements specification. It provides details on each topic with definitions, characteristics, advantages and diagrams. The key steps in software process are specified as software specifications, design and implementation, validation, and evolution. Generic process models and specific models like waterfall, evolutionary development, and incremental delivery are explained.
This document provides an overview of software and software engineering. It discusses that software is designed by engineers and used virtually everywhere. It also outlines important questions for software engineers, different types of software applications, challenges in software development, and realities of software engineering. The document emphasizes that software engineering applies systematic and disciplined approaches to develop reliable and efficient software economically. It also summarizes various software engineering processes, activities, principles, and that software is created to meet business needs.
Elementary Probability theory Chapter 2.pptxethiouniverse
The document discusses various software process models including waterfall, iterative, incremental, evolutionary (prototyping and spiral), and component-based development models. It describes the key activities and characteristics of each model and discusses when each may be applicable. The waterfall model presents a linear sequential flow while evolutionary models like prototyping and spiral are iterative and incremental to accommodate changing requirements.
Introduction to software engineering information.
How the concept of the software engineering discover.
Nature of the software with categorization.
Software Crises in software engineering.
Programming practice with the concept of software engineering.
Software Project management practice with the help software engineering.
Design and Patterns concepts also.
Semelhante a Chapter 1-software-engineering-tools-and-practices.pptx (20)
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...PECB
Denis is a dynamic and results-driven Chief Information Officer (CIO) with a distinguished career spanning information systems analysis and technical project management. With a proven track record of spearheading the design and delivery of cutting-edge Information Management solutions, he has consistently elevated business operations, streamlined reporting functions, and maximized process efficiency.
Certified as an ISO/IEC 27001: Information Security Management Systems (ISMS) Lead Implementer, Data Protection Officer, and Cyber Risks Analyst, Denis brings a heightened focus on data security, privacy, and cyber resilience to every endeavor.
His expertise extends across a diverse spectrum of reporting, database, and web development applications, underpinned by an exceptional grasp of data storage and virtualization technologies. His proficiency in application testing, database administration, and data cleansing ensures seamless execution of complex projects.
What sets Denis apart is his comprehensive understanding of Business and Systems Analysis technologies, honed through involvement in all phases of the Software Development Lifecycle (SDLC). From meticulous requirements gathering to precise analysis, innovative design, rigorous development, thorough testing, and successful implementation, he has consistently delivered exceptional results.
Throughout his career, he has taken on multifaceted roles, from leading technical project management teams to owning solutions that drive operational excellence. His conscientious and proactive approach is unwavering, whether he is working independently or collaboratively within a team. His ability to connect with colleagues on a personal level underscores his commitment to fostering a harmonious and productive workplace environment.
Date: May 29, 2024
Tags: Information Security, ISO/IEC 27001, ISO/IEC 42001, Artificial Intelligence, GDPR
-------------------------------------------------------------------------------
Find out more about ISO training and certification services
Training: ISO/IEC 27001 Information Security Management System - EN | PECB
ISO/IEC 42001 Artificial Intelligence Management System - EN | PECB
General Data Protection Regulation (GDPR) - Training Courses - EN | PECB
Webinars: https://pecb.com/webinars
Article: https://pecb.com/article
-------------------------------------------------------------------------------
For more information about PECB:
Website: https://pecb.com/
LinkedIn: https://www.linkedin.com/company/pecb/
Facebook: https://www.facebook.com/PECBInternational/
Slideshare: http://www.slideshare.net/PECBCERTIFICATION
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxEduSkills OECD
Iván Bornacelly, Policy Analyst at the OECD Centre for Skills, OECD, presents at the webinar 'Tackling job market gaps with a skills-first approach' on 12 June 2024
This document provides an overview of wound healing, its functions, stages, mechanisms, factors affecting it, and complications.
A wound is a break in the integrity of the skin or tissues, which may be associated with disruption of the structure and function.
Healing is the body’s response to injury in an attempt to restore normal structure and functions.
Healing can occur in two ways: Regeneration and Repair
There are 4 phases of wound healing: hemostasis, inflammation, proliferation, and remodeling. This document also describes the mechanism of wound healing. Factors that affect healing include infection, uncontrolled diabetes, poor nutrition, age, anemia, the presence of foreign bodies, etc.
Complications of wound healing like infection, hyperpigmentation of scar, contractures, and keloid formation.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
Gender and Mental Health - Counselling and Family Therapy Applications and In...PsychoTech Services
A proprietary approach developed by bringing together the best of learning theories from Psychology, design principles from the world of visualization, and pedagogical methods from over a decade of training experience, that enables you to: Learn better, faster!
Temple of Asclepius in Thrace. Excavation resultsKrassimira Luka
The temple and the sanctuary around were dedicated to Asklepios Zmidrenus. This name has been known since 1875 when an inscription dedicated to him was discovered in Rome. The inscription is dated in 227 AD and was left by soldiers originating from the city of Philippopolis (modern Plovdiv).
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
Communicating effectively and consistently with students can help them feel at ease during their learning experience and provide the instructor with a communication trail to track the course's progress. This workshop will take you through constructing an engaging course container to facilitate effective communication.
How to Setup Warehouse & Location in Odoo 17 InventoryCeline George
In this slide, we'll explore how to set up warehouses and locations in Odoo 17 Inventory. This will help us manage our stock effectively, track inventory levels, and streamline warehouse operations.
2. Chapter one
2
Introduction to software engineering tools and
practices
Contents
•
• Introduction
Basic of CASE tools
3. Definition
3
Software can be defined as a set of programs and
associated documentations.
which includes
A number of separate programs
Configuration files
System documentation
User documentation
4. What is software engineering?
Software engineering is defined as a process of
analyzing user requirements and then designing,
building, and testing software application which will
satisfy those requirements.
IEEE, in its standard 610.12-1990, defines software
engineering as the application of a systematic,
disciplined, which is a computable approach for the
development, operation, and maintenance of
software.
4
5. What is software engineering?
5
Software engineering (SE) is an intellectual activity
and thus human-intensive.
Software is built to meet a certain functional goal and
satisfy certain qualities.
Software processes also must meet certain qualities.
7. Software Engineering Concepts:
Definitions
7
Project: set of activities to develop a software
system.
Activity: a phase in which related tasks
are carried out.
Task: effort that uses resources and produces
work product.
Resources: time, equipment, people (participants)
Work Product: a model, system, or artifact.
10. Software Engineering Tools
10
A software tool is a program that automates some of the labor
involved in the management, design, coding, testing,
inspection, or maintenance of other programs.
Tools allow repetitive, well-defined actions to be automated,
thus reducing the cognitive load on the software engineer.
The engineer is then free to concentrate on the creative aspects
of the process.
Tools are often designed to support particular methods,
reducing any administrative load associated with applying the
method manually.
11. CASE Tools
11
CASE stands for Computer Aided Software Engineering.
It means, development and maintenance of software projects
with help of various automated software tools.
Computer-aided software engineering (CASE) is the
scientific application of a set of tools and methods to a
software system which is meant to result in high-quality,
defect-free, and maintainable software products.
It also refers to methods for the development of
information systems together with automated tools that can
be used in the software development process.
12. CASE Tools…
12
CASE tools are used by software project managers,
analysts and engineers to develop software system.
There are number of CASE tools available to simplify various
stages of Software Development Life Cycle such as Analysis
tools, Design tools, Project management tools, Database
Management tools, Documentation tools are to name a few.
Use of CASE tools accelerates the development of project to
produce desired result and helps to uncover flaws before
moving ahead with next stage in software development.
13. CASE Tools…
13
Therefore, CASE tools include design editors, data
dictionaries, compilers, debuggers, system building tools,
etc.
CASE also refers to the methods dedicated to an
engineering discipline for the development of
information system using automated tools.
CASE is mainly used for the development of quality
software which will perform effectively.
14. CASE Tools…
14
Characteristics of CASE:
It is a graphic oriented tool.
It supports decomposition of process.
Some typical CASE tools are:
Unified Modeling Language
Data modeling tools, and
Source code generation tools.
15. Why CASE Tools?
Architecture management
• Model, design and rapidly build software systems, and
computer applications.
Change and Release Management
• Improve software delivery and life cycle traceability, from
requirements to development.
Software development Management
Align projects for improved productivity and predictability
•
Quality Management
15
•
Ensure software functionality, reliability and
performance
16. Goals of CASE Tools
16
Supply basic functionality, do routine tasks automatically.
Enhance productivity
Increase software quality
Integration with other tools
17. Importance of CASE
17
CASE allows for rapid development of software.
Produce systems with a longer effective operational life.
Produce systems that most closely meet user needs and
requirements.
Produce system with excellent documentation.
Produce systems that needs less systems support.
Produce more flexible systems.
18. Drawbacks of CASE
18
Very complex
Expensive
Difficult to customize
Require training of maintenance staff
Not easily maintainable
Fragile
21. CASE Tools
21
Two types of tools used by software engineers.
1. Analytical tools
Stepwise refinement (top-down design)
Cost-benefit analysis
Software metrics
2. CASE tools
Diagram tools
Process Modeling Tools
Project Management Tools…
22. Symptoms of Software Development Problems
22
Different software development projects fail in different ways.
It is possible to identify a number of common symptoms that
characterize these kinds of projects:
Inaccurate understanding of end-user needs
Inability to deal with changing requirements
Modules that don’t fit together
Software that’s hard to maintain or extend
Late discovery of serious project flaws
Poor software quality
Unacceptable software performance
23. Root Causes of Software Development
Problems
23
Although different projects fail in different ways, it appears that most of
them fail because of a combination of the following root causes:
Ad hoc requirements management
Ambiguous and imprecise communication
Brittle architectures
Overwhelming complexity
Undetected inconsistencies in requirement,
design and implementations
Insufficient testing
Subjective project status assessment
Failure to attack risk
Uncontrolled change propagation
Insufficient automation
24. Software Engineering Best Practices
24
what software best practices are all about: commercially
proven approaches to software development that, when used in
combination, strike at the root causes of software development
problems.
These best practices are as follows.
1. Develop software iteratively.
2. Manage requirements.
3. Use component-based architectures.
4. Visually model software.
5. Verify software quality.
6. Control changes to software.
25. Software Engineering Best Practices…
25
1. Develop software iteratively.
This approach is one of continuous discovery, invention, and
implementation, with each iteration forcing the development team to
drive the project’s artifacts to closure in a predictable and repeatable way.
2. Manage requirements.
The challenge of managing the requirements of a software-intensive
system is that they are dynamic: you must expect them to change during
the life of a software project.
Identifying a system’s true requirements—those that weigh most heavily
on the system’s economic and technical goals—is a continuous process.
26. Software Engineering Best Practices…
26
3. Use component-based architectures.
Component-based development (CBD) is an important approach to
software architecture because it enables the reuse or customization of
existing components from thousands of commercially available sources.
4. Visually model software.
Modeling is important because it helps the development team visualize,
specify, construct, and document the structure and behavior of a
system’s architecture.
Using a standard modeling language such as the UML (Unified Modeling
Language), different members of the development team can
unambiguously communicate their decisions to one another.
27. Software Engineering Best Practices…
27
5. Verify software quality.
Software problems are 100 to 1,000 times more expensive to find and
repair after deployment.
For this reason, it’s important to continuously assess the quality of a
system with respect to its functionality, reliability, application
performance, and system performance.
6. Control changes to software.
Coordinating the activities and the artifacts of developers and teams
involves establishing repeatable workflows for managing changes to
software and other development artifacts.