software development methodology
DESCRIPTION
Belajar rajin rajin yeeTRANSCRIPT
Systems and Software Development: A Review
Dr. Muhammad Ikhwan JambakAssociate ProfessorSchool of Computing
Why Analysis and Design in Development?Do we really need ‘em? (making a “hello world” code or tree-swing)
// A Hello World! program in C#. using System; namespace HelloWorld { class Hello { static void Main() { Console.WriteLine("Hello World!"); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } }
Why Analysis and Design in Development?Do we really need ‘em? Perhaps not in a simple case but yes, in the complex ones
What do we actually develop?Software Vs (Information) Systems
SoftwareSoftware is more than just a program code (is an executable code, which serves some computational purpose). Software is considered to be collection of executable programming code, associated libraries and documentations. Software, when made for a specific requirement is called software product.
What do we actually develop?Software Vs (Information) Systems
Information System An integrated set of components (hardware, software, data, people, procedure) for collecting, storing, and processing data and for delivering information, knowledge, and digital products.(Encyclopedia Britannica)
Software DevelopmentSoftware Engineering
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (IEEE and ACM joint definition)
Software DevelopmentWhat does Software Engineering Involve?
The elicitation of the system’s requirementsThe specification of the system, and its architecturalSystem’s detailed designSystem’s verification and validationIncorporated with testing, management and quality control techniques and tools
Information System DevelopmentSystem Theory
Information System DevelopmentSystem Theory
Every system hasInputs and outputsA purpose (related to transformation)A boundary and an environmentSubsystems and interfacesControl using feedback and feed-forwardSome emergent property
Information System DevelopmentIS as a System
Every IS must have:A human activity that needs informationSome stored dataAn input method for entering dataSome process that turns the data into informationAn output method for representing information
May also have:Subsystems that we can also regard as systemsInterfaces with other systems
ProjectA planned undertaking that has a beginning and end that produce some definite result
Used to develop a software or an information systemA distinction should be made between
Systems development, which incorporates human, software and hardware elementsSoftware development, which is primarily concerned with software systems
In IS, two important phases in a project areStrategic Information Systems PlanningBusiness Modelling
ProjectA planned undertaking that has a beginning and end that produce some definite result
Requires knowledge of systems analysis, systems design, and the methodology, techniques and tool to do so.Requires a plan – a methodology
Systems / Software Development Life Cycle
Systems / Software Development Life Cycle (SDLC)
Systems / Software Development Life Cycle (SDLC) Entire process and activities required to build, deploy and maintaining an information system / a software
Need to Identify the problem or need or opportunityPlan and monitoring the projectDiscover and understand the detail of the problems or needDesign the system components that solve the problem or satisfy the needBuild, test and integrate system componentsComplete system tests and then deploy the solution
Systems / Software Development Life Cycle (SDLC) Terms clarification
Methodology is a collection of problem-solving methodsg overnedb y a set of principles and a commopnh ilosophyf or solving targeted problems (Checkland 1981).Technique is a set of precisely described procedures for achieving a standard task (Kettinger, 1997).Tool is defined as a software package to support one or more techniques (Palvia and Nosek1 993).Model is a representation of an important aspect of the real world. Sometimes, the term abstraction is used because we abstract (separate out) an aspect that is of particular importance to us.
Systems / Software Development Life Cycle (SDLC) Terms clarification
Paradigm is a theory or a group of ideas about how something should be done, made, or thought about (Merriam-Webster Dictionary)Approach is the way how to use the methodology and technique
Systems / Software Development Life Cycle (SDLC) Analysis Vs Design
Systems / Software Development Life Cycle (SDLC) Analysis Vs Design
Both the result of analysis and design activities need to be modeled
Textual Model – Written down and describedMathematical Model – Formula, statistics, calculationGraphical Model: Diagram, picture
Modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure
Systems / Software Development Life Cycle (SDLC) Classification
It is difficult to have a rigorous classification of the existing SDLCsFrom systems/software requirements point of view:
Predictive - that assumes the project can be planned in advance and that the new information system can be developed according to the planAdaptive - that assumes the project must be more flexible and adapt to changing needs as the project progresses
SDLC Paradigms, Methodologies, Models, Tools Waterfall
System System Engineering Engineering
Design Design
Code
Construction
Testing
Maintenance Maintenance
Analysis Requirements Analy sis
Code Installation
SDLC Paradigms, Methodologies, Models, Tools Iteration: the project that “grown”
SDLC Paradigms, Methodologies, Models, Tools Waterfall with Iteration
System Engineering
System Engineering
Design Design
Code
Construction
Testing
Maintenance Maintenance
Requirements Analy sis
Code Installation
SDLC Paradigms, Methodologies, Models, Tools Prototyping
Initial analysis
Define objectives
Specify
Construct Evaluate Prototyping completed
SDLC Paradigms, Methodologies, Models, Tools Spiral: Combining Iterative, Prototyping and Risk analysis
SDLC Paradigms, Methodologies, Models, Tools V : Testing in each stage
SDLC Paradigms, Methodologies, Models, ToolsUnified Software Development Process
Capture best practicesDevelop software iterativelyManage requirementsUse component-based architectureVisually model softwareVerify software qualityControl change in software
SDLC Paradigms, Methodologies, Models, ToolsUnified Software Development Process
The 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.
SDLC Paradigms, Methodologies, Models, ToolsAgile Development
Emphasizes flexibility to anticipate new requirements during developmentXtreme Programming
Is an iterative and incremental processHigh productivity and high toleranceCommunication is strong with sort pathSmall range deliverables (artifacts) but frequently release
SDLC Paradigms, Methodologies, Models, ToolsObject-Oriented Analysis and Design
Looking forward in next lecture !!!
ReferencesThis slides is based on:
Bennett, S., et. al., Object-oriented Systems Analysis and Design Using UML, 3rd Ed, McGraw Hill
Chapter 1 – 3Maciaszek, L. A., Requirements Analysis and System Design, 3rd Ed, Addison Wesley
Chapter 1