This document discusses software development processes. It describes the differences between systems development and software development. Software development focuses solely on producing software to satisfy user requirements. The document then discusses the main challenges in software development like ensuring quality and productivity. It introduces several software development life cycle models like waterfall, prototyping, iterative development and the unified process. Each model has its own advantages and disadvantages. User involvement and CASE tools can also support the development process.
This document summarizes key topics from Chapter 4 of Ian Sommerville's Software Engineering textbook, including software process models, generic process models like waterfall, evolutionary development and component-based development, process activities like requirements engineering, design, implementation, validation and evolution. It also describes the Rational Unified Process model and the role of computer-aided software engineering tools in supporting software processes.
The document discusses the system development life cycle (SDLC), which includes preliminary investigation, requirements analysis, system design, software development, system testing, and implementation and maintenance. It describes the purpose and history of SDLC as emerging in the 1960s to address the "software crisis". It also outlines the main steps and activities in each phase of the SDLC process.
This document provides an overview of the Unified Process, Agile process, and process assessment. It defines the Unified Process as an iterative framework derived from UML that includes inception, elaboration, construction, and transition phases. Agile processes like Extreme Programming emphasize iterative development, collaboration, and responding to change. Process assessment involves objectively evaluating an organization's ability to meet process goals through stages of initiation, preparation, assessment, analysis and reporting, and closure.
This document contains lecture notes for a course on Software Engineering (CS504). It covers topics like introduction to software engineering, requirement engineering, software design, object oriented analysis and design, coding guidelines, testing, debugging and more. The lectures were delivered by Dr. Fakhar Lodhi and there are a total of 45 lectures in the notes.
This document provides an introduction to software engineering. It defines software as a set of instructions that provide desired functions when executed. Engineering is defined as applying scientific methods to construct, operate, modify and maintain useful devices and systems. Software engineering then applies technologies and practices from computer science, project management, and other fields to the design, development and documentation of software. Some key characteristics of software discussed are that it is developed rather than manufactured, can be easily modified and reproduced, and does not wear out. The document also outlines various types of software applications and discusses software engineering as a layered technology with foundations in quality focus, processes, methods and tools. Finally, it addresses some common software myths from management, customer, and practitioner perspectives.
Software Engineering (Introduction to Software Engineering)ShudipPal
油
Software engineering is concerned with all aspects of software production. It aims to develop software using systematic and disciplined approaches to reduce errors and costs. Some key challenges in software development are its high cost, difficulty delivering on time, and producing low quality software. Software engineering methods strive to address these challenges and produce software with attributes like maintainability, dependability, efficiency, usability and acceptability.
This document discusses software process models. It begins by defining a software process as a structured set of activities required to develop software, including specification, analysis, design, implementation, validation, and evolution. It then describes several prescriptive process models: the waterfall model executes phases sequentially; incremental and evolutionary models iterate phases; and concurrent models perform phases in parallel. The document evaluates the strengths and weaknesses of each model to determine the most appropriate approach based on project requirements and risks.
The document provides information about software engineering for the second semester of the second year B.Tech IT course, including the syllabus, textbooks, and an index of process model lecture topics and slides. Process models covered include waterfall, incremental, RAD, evolutionary prototypes, spiral, and unified process. Software requirements topics such as functional and non-functional requirements are also outlined.
This document discusses changes in software engineering, including shorter time to market, use of object-oriented applications, user desktop computing, graphical user interfaces, increased networking, open source platforms, newer development models, and economic factors. It provides examples of how each change has impacted software engineering processes and timelines. Topic exercises are included for each change discussed to help students apply concepts.
The document discusses software process models. It describes the waterfall model, which is a generic process framework for software engineering that defines five framework activities: communication, planning, modeling, construction, and deployment. It also discusses umbrella activities that are applied throughout the process, such as project tracking and control. The waterfall model prescribes distinct activities, actions, tasks, milestones, and work products for software development. However, process models need to be adapted to meet the needs of specific projects.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
The document summarizes the syllabus for the Unit 2 course on software engineering processes and requirements. It includes an overview of various process models like waterfall, incremental, evolutionary (prototyping, spiral), and unified process. It also discusses software requirements including functional, non-functional requirements and the software requirements specification document.
The document discusses key concepts in software engineering including:
1. The differences between programs and software products. Software products are larger, have multiple users, and follow a more systematic development process.
2. Software is defined as the instructions, data structures, and documentation that make up a computer system. It is developed rather than manufactured.
3. Software engineering aims to apply systematic and quantifiable approaches to software development, operation, and maintenance to produce reliable software economically.
This document discusses various software engineering concepts related to software design. It begins by outlining basic design principles and the software design process, which involves three levels: interface design, architectural design, and detailed design. It then covers topics like modularization, coupling and cohesion, function-oriented design using tools like data flow diagrams and structure charts, software measurement and metrics including function point analysis and cyclomatic complexity, and concludes with Halstead's software science for measuring program length and volume.
The Unified Process (UP) is a popular iterative software development process for building object-oriented systems. It is flexible and incorporates best practices from other agile methods. The UP consists of four phases - Inception, Elaboration, Construction, and Transition. The Inception phase involves establishing an initial vision, scope, and feasibility of the project through analyzing a portion of requirements and risks. A decision is made whether to proceed further with more detailed planning in the Elaboration phase.
This document discusses socio-technical systems and their engineering. It defines socio-technical systems as systems that include both technical and human/organizational elements. Key points include: emergent properties depend on relationships between system components; reliability depends on interactions between hardware, software, and human factors; systems engineering involves specifying, designing, and maintaining complex systems; organizational context and processes affect system design and use; legacy systems are critical but costly to maintain.
1. The document discusses various software engineering process models including waterfall, prototyping, RAD, incremental, and spiral models. It describes the key phases and advantages/disadvantages of each.
2. It also covers system engineering and how software engineering occurs as part of developing larger systems. Business process engineering and product engineering are introduced for developing information systems and products respectively.
3. Key aspects of developing computer-based systems are outlined including the elements of software, hardware, people, databases, documentation and procedures.
The document discusses several software development life cycle (SDLC) models, including Waterfall, Incremental, Spiral, Evolutionary Prototyping, Agile, and Rapid Application Development (RAD) models. It provides an overview of the key phases and characteristics of each model, as well as their strengths, limitations, and situations where they are best applied. The models differ in their structure, flexibility to change, emphasis on documentation or code, and ability to incorporate customer feedback throughout the development process.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
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 discusses key topics in software engineering including its importance, costs, methods, challenges and professional responsibilities. It begins by outlining the objectives of understanding what software engineering is, its importance, and ethical issues. It then discusses that software costs, especially maintenance, often exceed development costs. Software engineering aims to improve cost-effectiveness. The document poses several frequently asked questions about software engineering and provides concise answers, covering topics such as the definition of software and differences between computer science, software engineering and system engineering. It also discusses software processes, costs, methods, CASE tools, attributes of good software and challenges in the field.
This document provides an introduction to software engineering. It defines software engineering as a systematic approach to software development that addresses quality. The document also discusses how software engineering emerged in response to the "software crisis" of the 1960s to establish discipline around software development. It outlines the typical roles and phases in a software engineering project, including requirements analysis, design, implementation, testing, and maintenance.
The document discusses the Software Development Life Cycle (SDLC), which is a process that consists of detailed planning for developing, maintaining, replacing, and enhancing software within an organization. The SDLC defines a methodology with phases including planning, analysis, design, implementation, and testing/maintenance. The planning phase involves feasibility studies and creating a project plan. The analysis phase breaks down requirements and gathers stakeholder needs. The design phase determines if development is internal or outsourced. The implementation phase builds, tests, and trains users on the new software. Testing and maintenance identifies and fixes bugs while accommodating new requirements.
Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality softwares. The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
SDLC is the acronym of Software Development Life Cycle.
It is also called as Software Development Process.
SDLC is a framework defining tasks performed at each step in the software development process.
ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software.
This document provides an overview of software engineering concepts including the definition of software engineering, software components, characteristics of software, the software crisis, software quality attributes, and software development life cycle (SDLC) models. It discusses several SDLC models - waterfall model, prototype model, spiral model, evolutionary development model - outlining their phases and advantages/disadvantages.
The document discusses key concepts in software engineering. It defines software engineering as applying systematic and technical approaches to develop reliable and efficient computer software. It describes various software development models including waterfall, prototyping, RAD, spiral and evolutionary models. It also discusses software engineering layers, characteristics, applications, and process models. Finally, it covers concepts like fourth generation techniques, software project management, estimation techniques, and risk management.
Software engineering principles in system software designTech_MX
油
This document discusses software engineering principles for system software design. It defines software engineering as a collection of techniques to produce high quality software on time and budget. Key principles discussed include rigor and formality, separation of concerns, modularity, abstraction, and anticipation of change. Examples of applying these principles to compilers and assemblers are provided. The software development process and different testing approaches are also summarized.
SDLC and Software Process Models Introduction pptSushDeshmukh
油
This document discusses the software development life cycle (SDLC) and different software process models. It describes the SDLC as a sequence of steps from planning to maintenance that helps create high quality software on time. The main phases of the SDLC are planning, requirements analysis, design, implementation, testing, and deployment/maintenance. It then explains the purpose of the SDLC and different software process models, including linear sequential, prototyping, and evolutionary models. For each model it provides an overview of the typical process and when each model is best applied.
This document provides an overview of various software development life cycle (SDLC) models including waterfall, V-shape, prototyping, spiral, iterative, and incremental models. It describes the key stages and characteristics of each model as well as discussing their advantages and disadvantages. The document is intended to teach students about software engineering processes and which models are suited to different types of projects.
The document provides information about software engineering for the second semester of the second year B.Tech IT course, including the syllabus, textbooks, and an index of process model lecture topics and slides. Process models covered include waterfall, incremental, RAD, evolutionary prototypes, spiral, and unified process. Software requirements topics such as functional and non-functional requirements are also outlined.
This document discusses changes in software engineering, including shorter time to market, use of object-oriented applications, user desktop computing, graphical user interfaces, increased networking, open source platforms, newer development models, and economic factors. It provides examples of how each change has impacted software engineering processes and timelines. Topic exercises are included for each change discussed to help students apply concepts.
The document discusses software process models. It describes the waterfall model, which is a generic process framework for software engineering that defines five framework activities: communication, planning, modeling, construction, and deployment. It also discusses umbrella activities that are applied throughout the process, such as project tracking and control. The waterfall model prescribes distinct activities, actions, tasks, milestones, and work products for software development. However, process models need to be adapted to meet the needs of specific projects.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
The document summarizes the syllabus for the Unit 2 course on software engineering processes and requirements. It includes an overview of various process models like waterfall, incremental, evolutionary (prototyping, spiral), and unified process. It also discusses software requirements including functional, non-functional requirements and the software requirements specification document.
The document discusses key concepts in software engineering including:
1. The differences between programs and software products. Software products are larger, have multiple users, and follow a more systematic development process.
2. Software is defined as the instructions, data structures, and documentation that make up a computer system. It is developed rather than manufactured.
3. Software engineering aims to apply systematic and quantifiable approaches to software development, operation, and maintenance to produce reliable software economically.
This document discusses various software engineering concepts related to software design. It begins by outlining basic design principles and the software design process, which involves three levels: interface design, architectural design, and detailed design. It then covers topics like modularization, coupling and cohesion, function-oriented design using tools like data flow diagrams and structure charts, software measurement and metrics including function point analysis and cyclomatic complexity, and concludes with Halstead's software science for measuring program length and volume.
The Unified Process (UP) is a popular iterative software development process for building object-oriented systems. It is flexible and incorporates best practices from other agile methods. The UP consists of four phases - Inception, Elaboration, Construction, and Transition. The Inception phase involves establishing an initial vision, scope, and feasibility of the project through analyzing a portion of requirements and risks. A decision is made whether to proceed further with more detailed planning in the Elaboration phase.
This document discusses socio-technical systems and their engineering. It defines socio-technical systems as systems that include both technical and human/organizational elements. Key points include: emergent properties depend on relationships between system components; reliability depends on interactions between hardware, software, and human factors; systems engineering involves specifying, designing, and maintaining complex systems; organizational context and processes affect system design and use; legacy systems are critical but costly to maintain.
1. The document discusses various software engineering process models including waterfall, prototyping, RAD, incremental, and spiral models. It describes the key phases and advantages/disadvantages of each.
2. It also covers system engineering and how software engineering occurs as part of developing larger systems. Business process engineering and product engineering are introduced for developing information systems and products respectively.
3. Key aspects of developing computer-based systems are outlined including the elements of software, hardware, people, databases, documentation and procedures.
The document discusses several software development life cycle (SDLC) models, including Waterfall, Incremental, Spiral, Evolutionary Prototyping, Agile, and Rapid Application Development (RAD) models. It provides an overview of the key phases and characteristics of each model, as well as their strengths, limitations, and situations where they are best applied. The models differ in their structure, flexibility to change, emphasis on documentation or code, and ability to incorporate customer feedback throughout the development process.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
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 discusses key topics in software engineering including its importance, costs, methods, challenges and professional responsibilities. It begins by outlining the objectives of understanding what software engineering is, its importance, and ethical issues. It then discusses that software costs, especially maintenance, often exceed development costs. Software engineering aims to improve cost-effectiveness. The document poses several frequently asked questions about software engineering and provides concise answers, covering topics such as the definition of software and differences between computer science, software engineering and system engineering. It also discusses software processes, costs, methods, CASE tools, attributes of good software and challenges in the field.
This document provides an introduction to software engineering. It defines software engineering as a systematic approach to software development that addresses quality. The document also discusses how software engineering emerged in response to the "software crisis" of the 1960s to establish discipline around software development. It outlines the typical roles and phases in a software engineering project, including requirements analysis, design, implementation, testing, and maintenance.
The document discusses the Software Development Life Cycle (SDLC), which is a process that consists of detailed planning for developing, maintaining, replacing, and enhancing software within an organization. The SDLC defines a methodology with phases including planning, analysis, design, implementation, and testing/maintenance. The planning phase involves feasibility studies and creating a project plan. The analysis phase breaks down requirements and gathers stakeholder needs. The design phase determines if development is internal or outsourced. The implementation phase builds, tests, and trains users on the new software. Testing and maintenance identifies and fixes bugs while accommodating new requirements.
Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality softwares. The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
SDLC is the acronym of Software Development Life Cycle.
It is also called as Software Development Process.
SDLC is a framework defining tasks performed at each step in the software development process.
ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software.
This document provides an overview of software engineering concepts including the definition of software engineering, software components, characteristics of software, the software crisis, software quality attributes, and software development life cycle (SDLC) models. It discusses several SDLC models - waterfall model, prototype model, spiral model, evolutionary development model - outlining their phases and advantages/disadvantages.
The document discusses key concepts in software engineering. It defines software engineering as applying systematic and technical approaches to develop reliable and efficient computer software. It describes various software development models including waterfall, prototyping, RAD, spiral and evolutionary models. It also discusses software engineering layers, characteristics, applications, and process models. Finally, it covers concepts like fourth generation techniques, software project management, estimation techniques, and risk management.
Software engineering principles in system software designTech_MX
油
This document discusses software engineering principles for system software design. It defines software engineering as a collection of techniques to produce high quality software on time and budget. Key principles discussed include rigor and formality, separation of concerns, modularity, abstraction, and anticipation of change. Examples of applying these principles to compilers and assemblers are provided. The software development process and different testing approaches are also summarized.
SDLC and Software Process Models Introduction pptSushDeshmukh
油
This document discusses the software development life cycle (SDLC) and different software process models. It describes the SDLC as a sequence of steps from planning to maintenance that helps create high quality software on time. The main phases of the SDLC are planning, requirements analysis, design, implementation, testing, and deployment/maintenance. It then explains the purpose of the SDLC and different software process models, including linear sequential, prototyping, and evolutionary models. For each model it provides an overview of the typical process and when each model is best applied.
This document provides an overview of various software development life cycle (SDLC) models including waterfall, V-shape, prototyping, spiral, iterative, and incremental models. It describes the key stages and characteristics of each model as well as discussing their advantages and disadvantages. The document is intended to teach students about software engineering processes and which models are suited to different types of projects.
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
油
The document discusses various software development processes. It begins by defining a software process as a framework that describes the activities performed at each stage of a project. It then categorizes common activities as software specification, development, validation, and evolution. The document goes on to describe plan-driven and agile processes, and notes that most practical processes include elements of both. It provides details on specific process models like waterfall, V-model, prototyping, incremental development, component-based development, and spiral model.
The document discusses several software process models, including:
- The waterfall model, which progresses through requirements, design, implementation, testing, and maintenance in a linear fashion. It is easy to understand but inflexible.
- The prototyping model, which builds prototypes to help refine requirements rather than freezing them early. This gets feedback from customers but prototypes may be mistaken for finished products.
- The spiral model, which is iterative and incremental, with each pass through the loop addressing process risks and allowing revisions of previous decisions.
The document discusses various topics related to software engineering including:
1. It defines software and describes attributes of good software such as functionality, maintainability, dependability, and usability.
2. It explains that software engineering is concerned with all aspects of software production, whereas computer science focuses more on theory and fundamentals.
3. Key attributes of good software are discussed including maintainability, dependability, efficiency, and acceptability.
4. Various software engineering models such as waterfall, prototyping, spiral, and agile models are briefly introduced.
This document discusses various software process models including the waterfall model, incremental model, prototyping model, and spiral model. The waterfall model involves sequential phases from requirements to maintenance with little iteration. The incremental model delivers software in iterations with requirements handled incrementally. The prototyping model uses prototypes to understand requirements and get early feedback. The spiral model is risk-driven and iterative, with each loop addressing tasks like requirements, design, and testing.
The document discusses different software development process models including waterfall, evolutionary development, incremental development, and spiral models. The waterfall model involves sequential phases of requirements, design, implementation, testing and maintenance. However, it does not handle changes well. Evolutionary and incremental models incorporate feedback loops and iterative development. The spiral model is risk-driven and guides teams to adopt elements of other models based on a project's risk assessment.
This document discusses various prescriptive software process models. It begins by describing a generic process framework that includes communication, planning, modeling, construction, and deployment. It then covers traditional models like the waterfall model and incremental model. Specialized models discussed include component-based development and formal methods. Finally, it describes the unified process model, which is iterative and incremental.
The document discusses software engineering and the Unified Software Development Process (USDP). It describes the USDP which includes phases of inception, elaboration, construction, and transition. Each phase involves iterations where requirements, analysis, design, implementation, and testing are done. The goal of each iteration is to produce an executable increment that is tested and evaluated.
Software life cycle model: The descriptive and diagrammatic representation of the software life cycle
It represent all the activities performed on software product from the inception to retirement
It also depicts the order in which these activities are to be undertaken
More than one activity can be carried out in a single phase
The primary advantage of adhering to a life cycle model is that it encourages development of software in a systematic and disciplined manner
When a program is developed by a single programmer ,he has the freedom to decide the exact steps through which he will develop the program
Iterative Linear Sequential Model
The document discusses several software development life cycle (SDLC) models:
1. The waterfall model involves sequential phases from requirements to maintenance.
2. The spiral model adds risk analysis and prototyping to the waterfall model in iterative cycles.
3. Evolutionary prototyping builds prototypes to refine requirements through user feedback before full development.
4. The incremental model prioritizes requirements and delivers them in groups to provide early functionality.
The document discusses several software development life cycle (SDLC) models including waterfall, V-shaped, prototyping, incremental, spiral, rapid application development (RAD), dynamic systems development method (DSDM), adaptive software development, and agile methods. It provides an overview of the key characteristics, strengths, weaknesses, and types of projects that each model is best suited for. Tailored SDLC models are recommended to customize processes based on specific project needs and risks.
This document provides an overview of software engineering. It discusses what software engineering is, common software development process models like waterfall, spiral, agile development, and the Unified Software Development Process (USDP). The USDP follows an iterative approach with phases for inception, elaboration, construction, and transition. Each phase has milestones and the process involves iterations where requirements, design, coding, and testing are done to create executable increments.
Software Engineering- Crisis and Process ModelsNishu Rastogi
油
The document discusses various software engineering process models including the waterfall model, iterative waterfall model, prototyping model, evolutionary model, rapid application development model, and spiral model. It provides details on the key activities and stages in each model's software development life cycle. The document also compares the different models and discusses when each may be best applied based on factors like the problem's understandability, decomposability into modules, and tolerance for incremental delivery.
The document discusses several software development process models including waterfall, iterative development, prototyping, RAD, spiral, RUP, and agile processes. The waterfall model is a linear sequential process while iterative development allows for incremental improvements. Prototyping allows users to provide early feedback. RAD combines waterfall and prototyping and emphasizes rapid development. Spiral model iterates through risk analysis, development, and planning phases. RUP is object-oriented and divided into cycles. Agile processes emphasize working software, incremental delivery, flexibility, and customer involvement.
Software engineering is defined as the systematic, disciplined and quantifiable approach to software development. It focuses on applying engineering principles and techniques to software in a cost-effective manner. As software grew in size and complexity, an engineering approach became necessary to effectively manage projects. Early approaches included structured programming and design based on control flow and data structures. Modern approaches include object-oriented design and iterative development processes. The software development life cycle typically includes phases for requirements analysis, design, implementation, testing, deployment and maintenance.
This document discusses the scope of software engineering. It begins by defining software and engineering. It then explains that software engineering aims to produce software that meets client needs, is fault-free, delivered on time and budget, and is easy to modify. It discusses why software engineering is needed due to past software failures. The document then covers various aspects of software engineering including historical, economic, and maintenance aspects. It also discusses common software engineering roles and development team members. Finally, it provides an overview of different software development lifecycle models.
1. Dokumen tersebut membahas diagram komponen dan diagram deployment.
2. Diagram komponen digunakan untuk memvisualisasikan organisasi dan ketergantungan antar komponen sistem, seperti file, library, tabel, dan lainnya.
3. Diagram deployment digunakan untuk memmodelkan distribusi komponen pada perangkat keras seperti node, device, client, dan server.
Dokumen ini membahas tentang pemetaan diagram kelas UML ke kode program. Diuraikan skema kelas Kucing dan skema pewarisan kelas Rumahan dari kelas Kucing beserta implementasinya dalam bahasa pemrograman. Diberikan contoh kode untuk mewakili relasi antara kelas Tiket dan Kendaraan dalam diagram kelas.
Class diagram menggambarkan struktur dan hubungan antar kelas dalam suatu sistem. Diagram ini menjelaskan kelas, atribut, metode, dan hubungan antar kelas seperti generalisasi, komposisi, agregasi, dan asosiasi. Class diagram digunakan untuk merancang dan memodelkan sistem berorientasi objek.
1. Dokumen tersebut membahas tentang konsep kelas dan objek dalam pemodelan berorientasi objek, termasuk penamaan kelas, atribut, metode, dan visibilitas antar objek.
2. Atribut menggambarkan properti kelas, sedangkan metode mengimplementasikan operasi yang dapat dilakukan pada objek kelas.
3. Terdapat beberapa jenis visibilitas antar objek seperti atribut visibilitas, parameter visibilitas, dan visibilitas lokal
The document discusses sequence diagrams and their elements. A sequence diagram models the interactions between objects in a system by showing message exchanges in time sequence. It contains lifelines that represent objects or roles, and messages that represent interactions between lifelines. Sequence diagrams can also include combined fragments that allow modeling alternative flows, loops, and other control structures.
Dokumen tersebut merupakan laporan tentang pemodelan sistem pembelian tiket menggunakan berbagai diagram UML seperti use case diagram, activity diagram, sequence diagram, dan collaboration diagram. Diagram-diagram tersebut digunakan untuk memvisualisasikan proses bisnis dan alur kerja sistem pembelian dan pembatalan tiket.
Teks tersebut membahas konsep-konsep dasar analisis dan desain berorientasi objek meliputi objek, kelas, atribut, metode, pesan, serta karakteristik seperti enkapsulasi, pewarisan, dan polimorfisme.
Dokumen tersebut merangkum penggunaan diagram use case dalam analisis dan perancangan berorientasi objek. Diagram use case digunakan untuk menggambarkan interaksi antara pengguna (actor) dengan fungsi sistem (use case). Dokumen tersebut menjelaskan unsur-unsur diagram use case seperti actor, use case, hubungan antara actor dan use case, serta generalisasi dan inklusi use case.
1. Software Development Process
E. Haodudin Nurkifli
Teknik Informatika
Universitas Ahmad Dahlan
Kuliah 2 : Administrative dan Introduction
2 Oktober 2010
Feb 24, 2014
3. Outline
Systems vs. Software Development
Difficulties in Software Develoment
Software Development Life Cycle
User Involvement
Case Tools Support
Eko AB Analisis dan Perancangan Algoritma
3
4. Systems Development
Systems development is
concerned with all aspects
of computer-based systems
development including
hardware,
software and
Human activities
May not even include
software as part of the
solution
Eko AB Analisis dan Perancangan Algoritma
4
5. Software Development
Software development is focused soly on producing a
software system that will satisfy user requirement.
Software: computer programs and associated
documentation
Software development may be considered as part of
systems development
Eko AB Analisis dan Perancangan Algoritma
5
6. The Main Players
Developers
Those who will produce the system
End-users
Those who may directly operate the system
Owners
or sponsors - clients
Those who commission the project, pay for it or
have the power to halt it
Eko AB Analisis dan Perancangan Algoritma
6
7. Difficulties in Software Development
Sotware quality: whether the software fits for purpose, satisfies
all user requirements.
Example failures
It might work, but dreadful to use (user)
It is pretty, but does not do anything useful (user)
Users and owners may not know how to ask for what they really want,
e.g. We built what they said they wanted (developer)
Budget and time constraints often conflict with doing the job properly,
e.g. There was not enough time to do it any better (developer)
Difficulties for the possession of blended skills, e.g. Do not blame
me, I never done object-oriented analysis before (developer)
Eko AB Analisis dan Perancangan Algoritma
7
8. Difficulties in Software Development
Productivity: the progress of the project, and the
resources (including time and money) that it consumes
along the way (much related to project management)
Example failures
A system that is promised but not delivered (user)
It is no use delivering now, we need it last April (owner)
Projects that overspend their budget (owner)
Requirements drift, e.g. user changes their minds
frequently(develper)
Implementation not feasible, e.g. we said it was impossible, but
no-one listened (developer)
How to overcome them?
Eko AB Analisis dan Perancangan Algoritma
8
9. Software Development Process
Subdividing the process of software development into
different phases
Ease of management to produce appropriate quality
standard and to stay within the allocated budgest
Help to identify and allocate developers skills
appropriately, and thus improve the quality of the task
completion
Known as project life cycle model
Eko AB Analisis dan Perancangan Algoritma
9
10. Project Life Cycle
Two important precursor
phases are
Don卒t blindly follow the
path to automation. The
very first question is
whether or not you even
need a computer
system...
Strategic Information Systems
Planning
Business Modelling
Focus on organisation needs
They are not computational
Universially accepted for
commercially oriented
computer system development
Eko AB Analisis dan Perancangan Algoritma
10
11. Generic Life Cycle Models
The Waterfall Model
Prototyping
Iterative and Incremental Development
The Unified Process Life Cycle
Eko AB Analisis dan Perancangan Algoritma
11
12. Waterfall Life Cycle
Requirements specification
Functional specification
Acceptance test specifications
System
System
Engineering
Engineering
Requirements
Analysis
Analy sis
Unit test report
Sub-system test report
System test report
Acceptance test report
Completed system
Design
Design
Construction
Software architecture specification
System test specification
Design specification
Sub-system test specification
Unit test specification
Change requests
Change request report
Eko AB Analisis dan Perancangan Algoritma
Testing
Code
Installation
Code
Maintenance
Maintenance
12
13. Waterfall Life Cycle
The traditional life cycle (TLC) for information
systems development.
So called because of the difficulty of returning to
an earlier phase.
The drawback of the waterfall model is the
difficulty of accommodating change after the
process is underway
Eko AB Analisis dan Perancangan Algoritma
13
14. TLC with Iteration
The cost of
this form of
iteration
increases as
the project
progresses
making it
impractical
and not
effective
Eko AB Analisis dan Perancangan Algoritma
14
15. Problems with TLC
Real projects rarely follow such a simple sequential life
cycle
Lapsed time between systems engineering and the
final installation is long
Iterations are almost inevitable in real projects but are
expensive & problematic with the TLC
Unresponsive to changes during project as iteration is
difficult
Therefore, this model is only appropriate when the
requirements are well-understood
Eko AB Analisis dan Perancangan Algoritma
15
16. Strengths of TLC
Provide
a very structured way to system
development
Tasks
in phases may be assigned to
specialized teams.
Project
progress evaluated at the end of each
phase, and assessment made as to whether
the project should proceed
Eko AB Analisis dan Perancangan Algoritma
16
17. Prototyping Life Cycle
Not intended to deliver the final working system
Quickly built up to explore some aspects of the system
May be used as part of other iterative life cycle
Initial
analys is
Define
objectives
Specify
Prototyping
com pleted
Eko AB Analisis dan Perancangan Algoritma
Evaluate
Cons truct
17
18. Prototyping Advantages
Early demonstrations of system functionality help
identify any misunderstandings between developer
and client
Client requirements that have been missed are
identified
Difficulties in the interface can be identified
The feasibility and usefulness of the system can be
tested, even though, by its very nature, the prototype
is incomplete
Eko AB Analisis dan Perancangan Algoritma
18
19. Prototyping Problems:
The
client may perceive the prototype as part of
the final system
The
prototype may divert attention from
functional to solely interface issues
Prototyping
requires significant user
involvement
Managing
the prototyping life cycle requires
careful decision making
Eko AB Analisis dan Perancangan Algoritma
19
20. Incremental Development
Initial
requirements
gathering and
project planning
Planning
Risk analysis
Risk analysis
based on user
reaction to plan
Further planning
based on user
comments
User
evaluation
of
increments
Risk analysis
based on initial
requirements
Go, no-go decision
Risk assessment
Progress towards
final system
User evaluation
Software development
Develop first
increment
Develop next
increment
The Spiral Model
(Boehm, 1988)
Eko AB Analisis dan Perancangan Algoritma
20
21. Incremental Development
Iterative problem solving: repeats activities, each can be
viewed as a mini-project
Incremental delivery, either external or internal release
New release = new functionality + (improved) previous
release
Several approaches to structuring iterations
Define and implement the key system functions
Focus on one subsystem at a time
Define by complexity or risk of certain components
Eko AB Analisis dan Perancangan Algoritma
21
22. Unified Process Life Cycle
The Unified Process System Development Life Cycle
Eko AB Analisis dan Perancangan Algoritma
22
23. Unified Process Life Cycle
Iteration
Eko AB Analisis dan Perancangan Algoritma
23
24. Unified Process Life Cycle
Captures
The
many elements of best practice
phases are:
Inception is concerned with determining the scope
and purpose of the project;
Elaboration focuses requirements capture and
determining the structure of the system;
Construction's main aim is to build the software
system;
Transition deals with product installation and rollout.
Eko AB Analisis dan Perancangan Algoritma
24
25. Choose Appropriate Life Cycle
TCL is highly predictive
Prototyping, Spiral and UP life cycle models are highly
adaptive
Predictive versus adaptive approaches to the SDLC
Eko AB Analisis dan Perancangan Algoritma
25
26. User Involvement
As
well as use appropriate process model,
user involvement and CASE tools support
also very improtant for project success
Users
can be involved at various levels
As part of the development team (DSDM)
Via a consultative approach
In fact gathering
Eko AB Analisis dan Perancangan Algoritma
26
27. CASE Tools
CASE-Computer Aided Software Engineering, typically
provide a range of features including:
Model and technical support
checks for syntactic correctness, consistency and completeness
Layering, navigation to linked diagrams
repository support, traceability
report generation
system simulation, performance analysis
Software construction
Code generation
Reverse engineering
Eko AB Analisis dan Perancangan Algoritma
27
29. Execises
1.
Distinguish between client and user.
2.
Define software quality.
3.
What are the main difference between quality problems and
productivity problems?
4.
Advantages and disadvantages of TLC, and how to overcome
the disadvantges?
5.
Differences between prototyping and incremental
development?
6.
Identify the ways and potential problems with user
involvement?
7.
What do you think is meant by the term failure when it is
applied to an IS project?
Eko AB Analisis dan Perancangan Algoritma
29
Editor's Notes
#5: Strategic Information Systems Planning. As we saw in Chapter 1, information systems work within the context of an organization and must satisfy its current requirements as well as providing a basis from which future needs can be addressed. In order to do this, strategic plans are developed for the organization as a whole and within their context a strategic view of information systems needs can be formed. For example, in the Agate case study a strategic decision may be made to target multinational companies for international advertising campaigns. This has consequences for campaign management and its supporting information systems.
Business modelling. In order to determine how an information system can support a particular business activity it is important to understand how the activity is performed and how it contributes to the objectives of the organization. Campaign management is an important business function for Agate and it should be modelled in order to determine how it is carried out, thus providing some of the parameters for subsequent information systems development.
#11: Strategic Information Systems Planning. As we saw in Chapter 1, information systems work within the context of an organization and must satisfy its current requirements as well as providing a basis from which future needs can be addressed. In order to do this, strategic plans are developed for the organization as a whole and within their context a strategic view of information systems needs can be formed. For example, in the Agate case study a strategic decision may be made to target multinational companies for international advertising campaigns. This has consequences for campaign management and its supporting information systems.
Business modelling. In order to determine how an information system can support a particular business activity it is important to understand how the activity is performed and how it contributes to the objectives of the organization. Campaign management is an important business function for Agate and it should be modelled in order to determine how it is carried out, thus providing some of the parameters for subsequent information systems development.
#18: Perform an initial analysis. All software development activity utilizes valuable re足sources. Embarking upon a prototyping exercise without some initial analysis is likely to result in an ill-focused and unstructured activity producing poorly designed software.
Define prototype objectives. Prototyping should have clearly stated objectives. A proto足typing exercise may involve many iterations, each iteration resulting in some improv足ement to the prototype. This may make it difficult for the participants in a prototyping exercise to determine if there is sufficient value to continue the prototyping. However, with clearly defined objectives it should be possible to decide if they have been achieved.
Specify prototype. Although the prototype is not intended for extended operation it is important that it embodies the requisite behaviour. It is almost certainly the case that the proto足type will be subject to modification and this will be easier if the software is built according to sound design principles.
Construct prototype. Since it is important that prototype development is rapid, the use of a rapid development environment is appropriate. For example, if an interactive system is being prototyped, environments such as DelphiTM or Visual Basic速 can be most effective.
Evaluate prototype and recommend changes. The purpose of the prototype is to test or explore some aspect of the proposed system. The prototype should be evaluated with respect to the objectives identified at the beginning of the exercise. If the objectives have not been met then the evaluation should specify modifications to the prototype so that it may achieve its objectives. The last three stages are repeated until the objectives of the prototyping exercise are achieved.