Održavanje Softvera
Total Page:16
File Type:pdf, Size:1020Kb
ODRŽAVANJE SOFTVERA DEFINICIJA “The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment” • 40-90% of the software life cycle cost Osnovne faze razvoja softvera: Uloga odrzavanja u celom zivotnom ciklusu softvera: TIPOVI ODRZAVANJA: Faze razvoja i elementi održavanja u agilnom razvoju softvera: Grupe aktivnosti u održavanju softvera (izvor: Alain April, Jane Huffman Hayes, Alain Abran, and Reiner Dumke: Software Maintenance Maturity Model (SMmm): The software maintenance process model) (izvor: http://www.klariti.com/technical-writing/2011/08/26/software-maintenance-plan/) There are two sides to Software Maintenance Plans – management and technical. Management issues include aligning with customer priorities, resources, setting up maintenance teams, and costs. Technical issues include impact analysis, testing, maintainability measurement. Software Maintenance includes ten activities: 1. Preparation – Describe software preparation and transition activities including the conception and creation of the maintenance plan; describe how to handle problems identified during development and configuration management. 2. Modification – After the application has become the responsibility of the maintenance team, explain how to analyze each request; confirm and check validity; investigate and propose solutions; document the proposal and get the required authorizations to apply the modifications. 3. Implementation – Describe the process for considering the implementation of the modification itself. 4. Acceptance – Describe how the modification is accepted by the maintenance team. 5. Migration – Describe any migration tasks that need to be executed. If the software needs to be moved to another system, outline the steps to do so without impacting its functionality. 6. Transition – Document the sequence of activities to transition the system from Development to Maintenance. 7. Service Level Agreements – Document SLAs and maintenance contracts negotiated by Maintenance. 8. Change Request – Outline the problem-handling process to prioritize, documents and route change and maintenance requests. 9. Modification Request acceptance/rejection – Describe the request including details of the size/effort/complexity. If this is too complex to resolve, outline the steps to route the issue back to the software team. 10. Retirement – This is the final stage in the lifecycle. Describe how to retire the software and the steps to archive any data that may be a by-product of the system. MODELI ODRZAVANJA SOFTVERA: QUICK – FIX – je zapravo ad-hoc pristup, čekanje da problem nastupi i korekcija Boemov model 1983.godine – zasnovan na ekonomskim principima (cost-benefit analiza zahteva za izmenama, izmene su povezane sa resursima koji su potrebni za realizaciju) OZBORNOV MODEL – zasniva se na mogućnosti da sve nije idealno, tj. da nisu na raspolaganju svi potrebni podaci, dokumentacija i specifikacije, vec se iterativno realizuje odrzavanje, omogucavajuci pojedinim segmentima da budu izmenjeni. Iterativni model unapređenja softvera – iterativni razvoj softvera uz nedovoljno jasne specifikacije koje se novim iteracijama razjasnjavaju I detaljnije opisuju, svaka iteracije radi UPDATE svih dokumenata I svih artefakta (REQUIREMENTS, DESIGN, CODING, TESTING). Reuse-oriented model – u okviru održavanja naglasak je na korišćenju gotovih komponenti, tj. prerađivanje starog dela softvera radi ponovnog korišćenja. SERVICE LEVEL AGREEMENT (SLA) (izvor: https://www.paloaltonetworks.com/cyberpedia/what-is-a-service-level-agreement-sla) A service level agreement (SLA) is a contract between a service provider (either internal or external) and the end user that defines the level of service expected from the service provider. SLAs are output-based in that their purpose is specifically to define what the customer will receive. SLAs do not define how the service itself is provided or delivered. The SLA an Internet Service Provider (ISP) will provide its customers is a basic example of an SLA from an external service provider. The metrics that define levels of service for an ISP should aim to guarantee: A description of the service being provided– maintenance of areas such as network connectivity, domain name servers, dynamic host configuration protocol servers Reliability – when the service is available (percentage uptime) and the limits outages can be expected to stay within Responsiveness – the punctuality of services to be performed in response to requests and scheduled service dates Procedure for reporting problems – who can be contacted, how problems will be reported, procedure for escalation, and what other steps are taken to resolve the problem efficiently Monitoring and reporting service level – who will monitor performance, what data will be collected and how often as well as how much access the customer is given to performance statistics Consequences for not meeting service obligations – may include credit or reimbursement to customers, or enabling the customer to terminate the relationship. Escape clauses or constraints – circumstances under which the level of service promised does not apply. An example could be an exemption from meeting uptime requirements in circumstance that floods, fires or other hazardous situations damage the ISP’s equipment. Though the exact metrics for each SLA vary depending on the service provider, the areas covered are uniform: volume and quality of work (including precision and accuracy), speed, responsiveness, and efficiency. In covering these areas, the document aims to establish a mutual understanding of services, areas prioritized, responsibilities, guarantees, and warranties provided by the service provider. The level of service definitions should be specific and measureable in each area. This allows the quality of service to be benchmarked and, if stipulated by the agreement, rewarded or penalized accordingly. An SLA will commonly use technical definitions that quantify the level of service such as mean time between failures (MTBF) or mean time to recovery, response, or resolution (MTTR), which specifies a “target” (average) or “minimum” value for service level performance. SLAs are also very popular among internal departments in larger organizations. For example, the use of a SLA by an IT helpdesk with other departments (the customer) allows their performance to be defined and benchmarked. The use of SLAs is also common in outsourcing, cloud computing, and other areas where the responsibility of an organization is transferred out to another supplier. REINŽENJERING SOFTVERA (izvor: http://www.cs.toronto.edu/~yijun/ece450h/handouts/lecture2.pdf) UPRAVLJANJE KONFIGURACIJOM SOFTVERA DEFINICIJA (izvor: https://www.techopedia.com/definition/24583/software-configuration-management-scm) Software configuration management (SCM) is a software engineering discipline consisting of standard processes and techniques often used by organizations to manage the changes introduced to its software products. SCM helps in identifying individual elements and configurations, tracking changes, and version selection, control, and baselining. SCM is also known as software control management. SCM aims to control changes introduced to large complex software systems through reliable version selection and version control. SOFTVERSKI ALATI ZA PRAĆENJE VERZIJA SOFTVERA (Version control softver) POSTOJI NEKOLIKO MODELA: Model sa lokalnim podacima - In the local-only approach, all developers must use the same file system. Klijent-server model - In the client-server model, developers use a shared single repository. DISTRIBUIRANI MODEL - each developer works directly with his or her own local repository, and changes are shared between repositories as a separate step. PRIMERI ALATA: Local data model *********************** Open source --------------- Revision Control System (RCS) – stores the latest version and backward deltas for fastest access to the trunk tip[1][2] compared to SCCS and an improved user interface,[3] at the cost of slow branch tip access and missing support for included/excluded deltas. Source Code Control System (SCCS) – part of UNIX; based on interleaved deltas, can construct versions as arbitrary sets of revisions. Extracting an arbitrary version takes essentially the same time and is thus more useful in environments that rely heavily on branching and merging with multiple "current" and identical versions. Client-server model *********************** Open source --------------- Concurrent Versions System (CVS) – originally built on RCS, licensed under the GPL. CVSNT – cross-platform port of CVS that allows case insensitive file names among other changes OpenCVS – CVS clone under the BSD license, with emphasis put on security and source code correctness Subversion (SVN) – versioning control system inspired by CVS[4] Vesta – build system with a versioning file system and support for distributed repositories Proprietary --------------- Filesentral – GUI based version control aimed primarily at the non - programmers demographic AccuRev – source configuration management tool with integrated issue tracking based on "Streams" that efficiently manages parallel and global development; replication server is also available Autodesk Vault – Version control tool specifically designed for Autodesk applications managing the complex relationships between design files such as AutoCAD and Autodesk Inventor. CADES - Designer productivity