10
Software Development Process 1. Faca uma l ista e clas sifiq ue os pr ocessos de desenvo lvimen to de sof tware. 2. Qual a di ferenca en tre requi sitos, software, docu mentac ao e teste – q ue componen tes contem cada um? 3. Analize a contradicao entre o custo do processo de definicao do software e o custo de  programacao. Como gerenciar estes custos? 4. Qual a di ferenca entre source, ob ject, execut able code? 5. Qual a di ferenca entre softwa re co mpilad o e interp retado ? 6. Qual a diferenca entre: commercial license, SaaS, pay per cycle, pay per cpu, ASP (ISP), freeware, shareware, open source, unsupported code, GNU license, software  platform? 7. App, widget, javalet, API, Core, 8. third -party develo per , integrator , V AR, distri butor , reseller , vendor 9. li fec ycl e, fo rk, re-codi ng, 10. debug, checkpoi nt, trap, trace, log 11. Descreva o processo de desenvolvimento d e software em termos gerais. 12. O que e manuten cao de software e por q ue e mais cara que o software original? 13.Por que estao desenvolvendo novos processos de software como o CMM5? Quais sao os problemas de software atuais? 14. O que sao metodos agieis de desen volvimento de so ftware e como se classificam? Sofware development [1] The main difference between avionics software and other embedded systems is that the actual standards are often far more detailed and rigorous than commercial standards, usually

Aula 02 - Software Development Process

Embed Size (px)

Citation preview

Page 1: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 1/10

Software Development Process1. Faca uma lista e classifique os processos de desenvolvimento de software.2. Qual a diferenca entre requisitos, software, documentacao e teste – que componentes

contem cada um?3. Analize a contradicao entre o custo do processo de definicao do software e o custo de

 programacao. Como gerenciar estes custos?4. Qual a diferenca entre source, object, executable code?5. Qual a diferenca entre software compilado e interpretado?6. Qual a diferenca entre: commercial license, SaaS, pay per cycle, pay per cpu, ASP

(ISP), freeware, shareware, open source, unsupported code, GNU license, software platform?

7. App, widget, javalet, API, Core,8. third-party developer, integrator, VAR, distributor, reseller, vendor 9. lifecycle, fork, re-coding,10. debug, checkpoint, trap, trace, log11. Descreva o processo de desenvolvimento de software em termos gerais.12. O que e manutencao de software e por que e mais cara que o software original?13.Por que estao desenvolvendo novos processos de software como o CMM5? Quais sao

os problemas de software atuais?14. O que sao metodos agieis de desenvolvimento de software e como se classificam?

Sofware development [1] 

The main difference between avionics software and other embedded systems is that the actualstandards are often far more detailed and rigorous than commercial standards, usually

Page 2: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 2/10

Page 3: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 3/10

refer to the activity of computer programming, which is the process of writing andmaintaining the source code, whereas the broader sense of the term includes all that isinvolved between the conception of the desired software through to the final manifestation of the software. Therefore, software development may include research, new development,modification, reuse, re-engineering, maintenance, or any other activities that result in

software products. For larger software systems, usually developed by a team of people, someform of process is typically followed to guide the stages of production of the software.Especially the first phase in the software development process may involve manydepartments, including marketing, engineering, research and development and generalmanagement. [6] 

Great article on why the hiring process at most software development companies is broken:http://tcrn.ch/kQjPxlvia @ fakemarktye[7] 

In software engineering, a project fork happens when developers take a copy of source codefrom one software package and start independent development on it, creating a distinct pieceof software. Free and open source software is that which, by definition, may be forked fromthe original development team without prior permission. However, licensed forks of 

 proprietary software (e.g. Unix) also happen. The term fork in this context derives from theuse of the term (see Fork (operating system)) in computer operating systems (especiallyUnix) where it refers to the creation of a copy of a running program (process) by forking a

 process, which creates two identical processes (like cell division in living things); the two arethen independent, and may proceed to do different tasks, as the program dictates. Theindependent development of two software projects cloned from the same source code isanalogous to Unix forking. [8] 

Crystal Clear is a member of the Crystal family of methodologies as described by Alistair 

Cockburn and is considered an example of an agile or lightweight methodology. CrystalClear can be applied to teams of up to 6 or 8 co-located developers working on systems thatare not life-critical. The Crystal family of methodologies focus on efficiency and habitabilityas components of project safety . Crystal Clear focuses on people, not processes or artifacts.Crystal Clear contains requires the following properties:Crystal Clear additionally includesthese optional properties: [9] 

An artifact is one of many kinds of tangible byproduct produced during the development of software. Some artifacts (e.g., use cases, class diagrams, and other UML models,requirements and design documents) help describe the function, architecture, and design of software. Other artifacts are concerned with the process of development itself - such as

 project plans, business cases, and risk assessments. The term artifact in connection with

software development is largely associated with specific development methods or processese.g., Unified Process. This usage of the term may have originated with those methods. Buildtools often refer to source code compiled for testing as an artifact, because the executable isnecessary to carrying out the testing plan. Without the executable to test, the testing planartifact is limited to non-execution based testing (verification). In non-execution basedtesting, the artifacts are the walkthroughs, inspections and correctness proofs. On the other hand, execution based testing (validation) requires at minimum two artifacts: a test suite andthe executable. An artifact occasionally may be used to refer to the released code (in the caseof a code library) or released executable (in the case of a program) produced but the morecommon usage is in referring to the byproducts of software development rather than the

 product itself. Open source code libraries often contain a testing harness to allow contributors

to ensure their changes do not cause regression bugs in the code library. Much of what areconsidered artifacts is software documentation. Artifacts vary in their maintainability.

Page 4: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 4/10

Page 5: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 5/10

Page 6: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 6/10

relationships between each phase of the development life cycle and its associated phase of testing. The V-model deploys a well-structured method in which each phase can beimplemented by the detailed documentation of the previous phase. Testing activities like testdesigning start at the beginning of the project well before coding and therefore saves a hugeamount of the project time. [22] 

Steps to have a successful software development outsourcing process http://t.co/lB6Tat5via @Jerry26058[23] 

Process Driven Development (PDD) is a methodology for constructing non-trivial customsoftware applications by analyzing the business processes in which they will be used. Itcomplements the use case driven approach to software development by helping the softwarearchitect to establish a correct use-case model for the application to be developed. The use-case driven approach to software development was pioneered by Ivar Jacobson and

 popularized by Doug Rosenberg in his book “Use Case Driven Object Modeling with UML”.PDD is particularly useful when there are a large number of different types of users who needto use the application for different purposes. The goal of PDD is to identify the differenttypes of users of the system and to gain an understanding the unique needs of each. PDDaccomplishes this goal by modeling the as-is and to-be business processes in which theapplication to be constructed is involved and identifying the places where individual usersinteract with the system to add value to the business process. The people who interact withthe system map to “actors” in the use-case model. The touch points with the system map to“use-cases” in the use-case model. A use-case model derived in this fashion can then be usedas the basis for use-case driven development with full confidence that it represents exactly theright system to meet the needs of the business. The visual representation of the business

 processes can vary. The Rational Unified Process has a Business Modeling discipline, for example that uses diagrams from the Unified Modeling Language to visually represent a

 business process. These include use case diagrams, activity diagrams and sequence diagrams.

Another business process modeling notation that can be used is the Business ProcessModeling Notation (BPMN). [24] 

Page 7: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 7/10

Schedule Acceptance Test Plan during Software Development Testing Phase [25] 

A Process Development Execution System (PDES) is a system which is used by companiesto perform development activities for high-tech manufacturing processes. A PDES is similar 

to a Manufacturing Execution Systems (MES) in several ways. The key distinguishing factor of a PDES is that it is tailored for steering the development of a manufacturing process, whileMES is tailored for executing the volume production using the developed process. Therefore,the toolset and focus of a PDES is on lower volume but higher flexibility andexperimentation freedom. The tools of an MES are more focused on less variance, higher volumes, tighter control and logistics. Both types of application software increasetraceability, productivity, and quality of the delivered result. For PDESs quality refers to therobustness of the developed manufacturing process. For MESs quality refers to the quality of the manufactured good (economics and accounting)/commodity. Additionally both softwaretypes share functions including equipment tracking, product genealogy, labour and itemtracking, costing, electronic signature capture, defect and resolution monitoring, Executive

Dashboards, and other various reporting solutions. Other rather similar software categoriesare Production Information Management System (PIMS), Laboratory InformationManagement Systems (LIMS) and Laboratory information system (LIS). PDESs’ offer awider set of functionalities e.g. virtual manufacturing techniques, while they are typically notintegrated with the equipment in the laboratory. PDESs have many parts and can be deployedon various scales - from simple Work in Progress tracking, to a complex solution integratedthroughout an enterprise development infrastructure. The latter conncets with other enterprisesystems like Enterprise Resource and Planning Systems (ERPs), Manufacturing ExecutionSystems (MESs), Product Lifecycle Management (PLM), Supervisory, Control and DataAcquisition (SCADA) solutions and Scheduling and Planning Systems (both long-term andshort-term tactical). [26] 

Page 8: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 8/10

Acceptance Test Plan Scope during Software Development Testing Phase [27] 

Software development effort estimation is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy

input. Effort estimates may be used as input to project plans, iteration plans, budgets,investment analyses, pricing processes and bidding rounds. [28] 

A software development folder or file is a physical or virtual container for software projectartifacts, including: requirements, plans, designs, source code, test plans and results, problemreports, reviews, notes, and other artifacts of the development process. Typically, an SDF ishierarchically organized by project phase, artifact type, and/or project team. All or parts of SDF content are typically 'managed'. That is, access and changes are controlled. For electronic media repositories, this control is often facilitated using a configurationmanagement tool such as CVS or IBM Rational ClearCase, in conjunction with a changemanagement process. IEEE/EIA guide 12207.1, 'Software life cycle processes - Life cycledata', provides a robust description of the artifacts that would typically be stored in a

Software Development Folder. Originally, the SDF was a binder or collection of binderscontaining these records, but the term and concept have been adopted widely, and evolved toinclude both physical and electronic media, and less centralized repositories. As such, theSDF is often represented as an index with references to its constituent repositories. [29] 

Analysing a Software Development Company's Requirements Specification Processhttp://t.co/ehF4wTpvia @Isadora90442[30] 

Adaptive Software Development is a software development process that grew out of rapidapplication development work by Jim Highsmith and Sam Bayer. ASD embodies the

 principle that continuous adaptation of the process to the work at hand is the normal state of affairs. ASD replaces the traditional waterfall cycle with a repeating series of speculate,

Page 9: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 9/10

collaborate, and learn cycles. This dynamic cycle provides for continuous learning andadaptation to the emergent state of the project. The characteristics of an ASD life cycle arethat it is mission focused, feature based, iterative, timeboxed, risk driven, and changetolerant. The word “speculate” refers to the paradox of planning – it is more likely to assumethat all stakeholders are comparably wrong for certain aspects of the project’s mission, while

trying to define it. Collaboration refers to the efforts for balancing the work based on predictable parts of the environment (planning and guiding them) and adapting to theuncertain surrounding mix of changes caused by various factors – technology, requirements,stakeholders, software vendors, etc. The learning cycles, challenging all stakeholders, are

 based on the short iterations with design, build and testing. During these iterations theknowledge is gathered by making small mistakes based on false assumptions and correctingthose mistakes, thus leading to greater experience and eventually mastery in the problemdomain. [31] 

Some more thoughts about Software Development Process:

• Here is a quote from the Schwaber and Beedle book "Agile Software Developmentwith Scrum"... "Empirical process control models are elegantly simple. ... [32] 

• A software development process is a structure imposed on the development of asoftware product. Synonyms include software life cycle and software [33] 

• We've presented an example of the software development process across several postsover the last two weeks. In this post we tie them all together, showing the steps ... [34] 

• Software Development is a process or the structure used to impose for thedevelopment of a software product. Software development may include research, ...[35] 

• Software Development. These are the days of outsourcing and end users for whomsoftware is made might not be aware of its development process. ... [36] 

References

1. [1] software development via Flickr 

2. [2] Lazarus (software): Development process via Wikipedia

3. [3] Avionics software: Development process via Wikipedia

4. [4] software_development via Flickr 

5. [5] Software project management: Software development process via Wikipedia

6. [6] Software development via Wikipedia

7. [7] fakemarktye via Twitter 

8. [8] Fork (software development) via Wikipedia

9. [9] Crystal Clear (software development) via Wikipedia

10.[10] Artifact (software development) via Wikipedia

11.[11] Bristol (software): Granular processing via Wikipedia

12.[12] Process mining: Software for process mining via Wikipedia

13.[13] Software development process - Wikipedia, the free encyclopedia via Yahoo!

14.[14] Software development methodology - Wikipedia, the free ... via Yahoo!

15.[15] Software Development Process, Software Development Methods ... via Yahoo!

16.[16] Software Development Process | Software Configuration ... via Yahoo!17.[17] Secure Software Development Life Cycle Processes via Yahoo!

Page 10: Aula 02 - Software Development Process

8/6/2019 Aula 02 - Software Development Process

http://slidepdf.com/reader/full/aula-02-software-development-process 10/10

18.[18] Business Process Modeling Techniques in Software Development Liyecycle viaFlickr 

19.[19] Business process outsourcing in the Philippines: Software Development andAnimation via Wikipedia

20.[20] Woodworking, like software development via Flickr 

21.[21] Software inspection: The process via Wikipedia

22.[22] V-Model (software development) via Wikipedia

23.[23] Jerry26058 via Twitter 

24.[24] Process Driven Development via Wikipedia

25.[25] Schedule Acceptance Test Plan during Software Development Testing Phase viaFlickr 

26.[26] Process Development Execution System via Wikipedia

27.[27] Acceptance Test Plan Scope during Software Development Testing Phase via

Flickr 28.[28] Software development effort estimation via Wikipedia

29.[29] Software Development Folder via Wikipedia

30.[30] Isadora90442 via Twitter 

31.[31] Adaptive Software Development via Wikipedia

32.[32] Software Development Process | VersionOne via Yahoo!

33.[33] Software Development Process | Software Peer via Yahoo!

34.[34] Software development process example via Yahoo!

35.[35] Software Development Process | Software Development Process ... via Yahoo!36.[36] Software Development Process via Yahoo!