fyrra hlutapróf glærur 1
Phases eða Þróunarstig
"First we STUDY the REQUIREMENTS, and ANALYZE the results.. then we DESIGN and IMPLEMENT, then TEST, DELIVER and MAINTAIN product.. till it is RETIRED" Preliminary Study, Requirements Analyzis Design Implementation Testing Delivery Maintenance Retirement
Mismunandi life cycles
- Code and fix - Waterfall (fossalíkan) - Iterative and incremental (skrefalíkan) - RAD - rapid application development - Synchronize and Stabilize - Spiral mode (snúður)
Software engineering (SE)
A profession dedicated to designing, implementing, and modifying software - so that it is of hight quality, more affordable, maintainable, and faster to build The term first appeared in the 1968 NATO software engineering conference, to address the software crisis (1960-1980) at the time
RAD - Rapid Application Development
Andstæða fossalíkans minni áhersla á skipulag Gott þar sem megináhersla apps veltur á User Interface James Martin (Chris martin var gaurinn í Coldplay) fann það upp. Mörg development nota hluta af þessu að einhverju leiti -requirement planning User Design and Construction á sama tíma cutover? geri ráð fyrir því að það se einhverskonar delivery?
Synchronize and Stabilize
Byrjar eins og flest á study/REQUIREMENT analysis verkefni skipt í 3-4 hluta á milli jafn margra smárra liða (teams) lok dags = syncronize lok forrits(build) = stabilize hlutar vinna alltaf saman maður fær fljótlega innsýn í *verkferli* (operation) vörunnar?
Iterative and Incremental
Byrjað á Initial planning fer svo í gegnum hring af planning og requirements, analysis, design and implementation (XX!), testing og svo evaluation endar svo á deployment (eftir XX!) þegar það telst tilbúið Samnefni yfir "cyclic live cycle models" eins og spiral (snúð), Agile og RUP (unified process??) Devs fá strax feedback og læra af fyrri "hringjum" (iterations) verður strax til einhverskonar virkni í raun Waterfall "revisited" í hringi af requrements og design phases
Munur á mismunandi modelum 1/2 Code-fix Waterfall Iterative/incremental
Code and fix - Pros: fínt í lítil forrit sem krefjast ekki viðhalds (maintenance) - Cons: Gjörsamlega ónýtt í stærri kerfi Waterfall - Pros: Agað approach og vel skjalað - Cons: bjagast stundum í gegnum waterfall (hvísluleikurinn) svo mistök og misskilningar koma seint í ljós þar sem v.v. er ekki mikið inni í þróunarferlinu Iterative And Incremental - Bara pros: svipar mjög til þess sem er gagnlegast og mest notað í dag Skilar sér í góðu feedbacki í gegnum allt ferlið
Unified Process 2/2 Construcion phase Transition phase
Construction phase - miðar að því að búa til fyrstu nothæfu útgáfu - áhersla á implementation og testing Tranistion Phase - Lokaskrefið þar sem gengið er í skugga um að kröfur v.v. hafi verið uppfylltar
Code and Fix
Frekar óformleg product specification Code - fix - and repeat till you reach a final product - often used when stress is high and discipline is lacking testing = debugging No scope (boom) no documentation Chaos Eins og gaurinn gerði sem ég var með í verklega (uch)
Analysis -(greining)
Goal is to analyze and document, and define the requirements. We do this using Use Cases and Diagrams. We avoid ambiguity and Incompleteness, resolve contradictions, and create a SPECIFICATION DOCUMENT which shows what the system shall be able to do.
Þegar velja á Life cycle model þarf að hugsa um
Hver eðlis stofnunin/fyrirtækið er hvernig því er stjórnað (management) Hæfni notenda hvers eðlis lausnin á að vera og hvaða life cycle model hentar þeirri launs specifically
Implementation -(útfærsla)
Hér er hugsað um: Programming language, development envirionment methods and style, unit testing Code reviews, integration of modules (samþætting)
Requirements -(Kröfusöfnun)
Hér verða *held ég* USE CASES til The aim is to determine the CLIENTS NEEDS, Draw out the Requirements in the language of the client What is the PURPOSE of the system Client contraints (Takmörk viðskiptavinar) - Deadline - Reliability - Cost
Unified Process 1/2 Inception phase Elaboration phase
Inception Phase - miðar að því að ákveða hvort varan/hugbúnaðurinn sé kostnaðarlega viable -almennt ekki byrjað að forrita á inception phase Elaboration phase - Verið að fínvinna upprunalegu kröfurnar - hér byrjar hönnun uppbyggingar forritsins
Lightweight Methologies (liprar/kvikar aðferðir) 2000-present
More software companies need for inexpensive software solutions need for faster and more frequent delivery new market called for new methodologies such as: - Extreme programming - Agile - Quality and speed is a good thing!!!
Maintenance -(viðhaldstími)
Not only adding features Documenting for staff because turnover maintenance plan release plan (why?) (retirement?(verklok))
Munur á mismunandi modelum 2/2 Prototyping Synchronize and Stabilize Spiral
Prototyping: - pros: Skilgreinir vöruna vel svo loka-vara/forrit ætti að skila sér greinilega í því sem v.v. vill. - cons: Einblýnir of mikið á UI Rapid Prototype býr til mjög miklar væntingar í v.v. og heldur hann oft að mun meira sé tilbúið en virkilega hefur verið gert. Synchronize and Stabilize: - pros: Skilar sér í góðu implementation lokavöru - cons: lítið notað utan microsoft ...... Spiral: -pros: implementar margar leiðir úr nokkrum modelum og einblínir á Risk-analysis -cons: Mikil vinna og endurvinna þar sem alltaf verið er að re-iterate-a hringinn.
Waterfall (fossalíkan)
RADIT+M stafirnir þýða það sama og í Phases (þróunarstigi) þ.e. Requirements, Analysis, Design, Implementation, Testing (og svo Maintenance) Linear model (línulegt) requirements þurfa að vera góð strax Mikið documentation Risks are poorly dealt with expensive to fix issues found late more risk of customer rejection due to misunderstanding and lack of revisits andstæða RAD þ.e. hér er mikil áhersla á skipulag og reglu
Designing -(hönnun)
Refine the analizis so that it can be used to design and then implement a program. The design shows how a system should do stuff. first the modules are designed, and then the details of each module Reuse and portability> design is open for MAINTENANCE.. (warning: ?? use before reuse??? ) veit ekki hvað þetta þýðir
The software crisis (stöðugleikatímabil) 1960-1980
Software crisis meant that - projects ran over budget and scheduel - faulty software was causing damage - and even loss of lives IBM 360 - the origin of software engineering They started seperating software and hardware the term software engineering first appeared during the software crisis
"no silver bullet" (örtímabilið) 1980-1990
The era that started the evolution of the PC (personal computer) where human-computer interaction startid coming forth More programming languages started appearing "no silver bullet" - they started seeing there was no universal solution to all problems. - Object-oriented languages started to appear and CASE and UML started appearing
Prominence of the internet (Upplýsingasamfélagið) 1990-1999
The internet and email started Viruses, worms, spam and more followed. Search engine optimization became a thing Large user bases appeared as they were able to connect more easily Internationalization and localization became a necessity
Tímabil software engineering - 5 tímabil
The pioneering era (brautryðjendatímabil) c.a. 1940-1960 The software crisis (stöðugleikatímabil) 1960-1980 "no silver bullet" (örtímabilið) 1980-1990 Prominence of the internet (Upplýsingasamfélagið) 1990-1999 Lightweight Methologies (liprar/kvikar aðferðir) 2000-present
Rapid Unified Process
Unified process á ekki að vera eitt ákveðið priocess, heldur einverskonar blanda af aðferðum sem hentar vörunni sem verið er að hanna stærsta software process lausnin á markaðnum.. upprunalega frá "rational software" en nú í höndum ibm
Testing -(Prófanir)
VALIDATE AND VERIFY SANNREYNA OG STAÐFESTA prófum Requirements, completeness of analysis. galla í design s.s. traceability og logic faults
Preliminary study -(forkönnun)
hagkvæmnismat (feasiblility study) - should we buy or build? - should we continue or cancel? - What is the cost, and what are the benefits. - what is the Return of Investment?
The pioneering era (brautryðjendatímabil) c.a. 1940-1960
new hardware called for new software they had machine rooms, used punched cards and had a lot of staff the first programming languages came forward - FORTRAN, COBOL, ALGOL
Spiral model (snúður)
svipar til Waterfall models nema þar er allt ferlið revisitað oft á maintenance phase iteration model af Waterfall+prototyping Verður fljótt til prototype sem er svo revisitað alveg á fullu í gegnum allt ferlið. !!Alltaf verið að gera risk-analysis.
Delivery -(afhending)
td hugsa um delivery plan, deployment plan installation manual versions(releases) OFL
Software (development) process
the development of a software product. - similar terms are "software life cycle" and "software process" - has multiple models, each describing a variety of tasks or activities to achive during said process
Retirement (verklok)
í raun eitthvað sem er gert ráð fyrir sem lokaskref af maintenance.. þegar stuðningi við forrit er hætt