Anda di halaman 1dari 10

Software Development Process

1. 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, log 11. 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 actual standards are often far more detailed and rigorous than commercial standards, usually

described by documents with hundreds of pages. Since the process is legally required, most processes have documents or software to trace requirements from numbered paragraphs in the specifications and designs to exact pieces of code, with exact tests for each, and a box on the final certification checklist. This is specifically to prove conformance to the legally mandated standard. Deviations from a specific project to the processes described here can occur due to usage of alternative methods or low safety level requirements. Almost all software development standards describe how to perform and improve specifications, designs, coding, and testing (See software development model). However avionics software development standards add some steps to the development for safety and certification: [3]

software_development [4] A software development process is concerned primarily with the production aspect of software development, as opposed to the technical aspect. These processes exist primarily for supporting the management of software development, and are generally skewed toward addressing business concerns. Requirements management is the process of identifying, eliciting, documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. new or altered computer system [5] Software development is the act of working to produce/create software. This software could be produced for a variety of purposes - the three most common purposes are to meet specific needs of a specific client/business, to meet a perceived need of some set of potential users (the case with commercial and open source software), or for personal use (e.g. a scientist may write software to automate a mundane task). The term software development is often used to

refer to the activity of computer programming, which is the process of writing and maintaining the source code, whereas the broader sense of the term includes all that is involved 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, some form 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 many departments, including marketing, engineering, research and development and general management. [6] Great article on why the hiring process at most software development companies is broken: http://tcrn.ch/kQjPxl via @fakemarktye [7] In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct piece of software. Free and open source software is that which, by definition, may be forked from the 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 the use of the term (see Fork (operating system)) in computer operating systems (especially Unix) 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 are then independent, and may proceed to do different tasks, as the program dictates. The independent development of two software projects cloned from the same source code is analogous 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. Crystal Clear can be applied to teams of up to 6 or 8 co-located developers working on systems that are not life-critical. The Crystal family of methodologies focus on efficiency and habitability as components of project safety . Crystal Clear focuses on people, not processes or artifacts. Crystal Clear contains requires the following properties:Crystal Clear additionally includes these 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 processes e.g., Unified Process. This usage of the term may have originated with those methods. Build tools often refer to source code compiled for testing as an artifact, because the executable is necessary to carrying out the testing plan. Without the executable to test, the testing plan artifact is limited to non-execution based testing (verification). In non-execution based testing, 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 and the executable. An artifact occasionally may be used to refer to the released code (in the case of a code library) or released executable (in the case of a program) produced but the more common 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 are considered artifacts is software documentation. Artifacts vary in their maintainability.

Maintainability is primarily effected by the role the artifact fulfills. The role can be either practical or symbolic. In the earliest stages of software development, artifacts may be created by the design team to serve a symbolic role to show the project sponsor how serious the contractor is about meeting the project's needs. Symbolic artifacts often convey information poorly, but are impressive-looking. Symbolic artifacts are sometimes referred to in the information architecture industry as Illuminated Scrolls, because the decorations do nothing to enhance understanding. Generally speaking, Illuminated Scrolls are also considered unmaintainable due to the diligence it requires to preserve the symbolic quality. For this reason, once Illuminated Scrolls are shown to the project sponsor and approved, they are replaced by artifacts which serve a practical role. Practical artifacts usually need to be maintained throughout the project lifecycle, and, as such, are generally highly maintainable. Artifacts are significant from a project management perspective as deliverables. The deliverables of a software project are likely to be the same as its artifacts with the addition of the software itself. The sense of artifacts as byproducts is similar to the use of the term artifact in science to refer to something that arises from the process in hand rather than the issue itself, i.e., a result of interest that stems from the means rather than the end. [10] Granular processing is currently under development and was not available at the time of writing. [11] A software framework for the evaluation of process mining algorithms has been developed at the Eindhoven University of Technology by Wil van der Aalst and others, and is available as an open source toolkit.Process Mining functionality is also offered by the following commercial vendors: [12]

Some more thoughts about Software Development Process:


A software development process, also known as a software development lifecycle, is a structure imposed on the development of a software product. ... [13] The software development methodology framework didn't emerge until the 1960s. ... Team software process developed by Watts Humphrey at the SEI ... [14] Description of software development processes and activities for software development services offered by Pegasus InfoCorp [15] Tags: AccuRev broken builds change packages continuous integration issue tracking private workspaces software development process time-based stream unit test " ... [16] It is also relevant to software engineering process group (SEPG) members who want to integrate security into their standard software development processes. ... [17]

Show more content

Business Process Modeling Techniques in Software Development Liyecycle [18]

Woodworking, like software development [20] The inspection process was developed by Michael Fagan in the mid-1970s and it has later been extended and modified. The process should have entry criteria that determine if the inspection process is ready to begin. This prevents unfinished work products from entering the inspection process. The entry criteria might be a checklist including items such as "The document has been spell-checked". The stages in the inspections process are: Planning, Overview meeting, Preparation, Inspection meeting, Rework and Follow-up. The Preparation, Inspection meeting and Rework stages might be iterated.The process is ended by the moderator when it satisfies some predefined exit criteria. [21] The V-model is a software development process which can be presumed to be the extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the

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 be implemented by the detailed documentation of the previous phase. Testing activities like test designing start at the beginning of the project well before coding and therefore saves a huge amount of the project time. [22] Steps to have a successful software development outsourcing process http://t.co/lB6Tat5 via @Jerry26058 [23] Process Driven Development (PDD) is a methodology for constructing non-trivial custom software applications by analyzing the business processes in which they will be used. It complements the use case driven approach to software development by helping the software architect to establish a correct use-case model for the application to be developed. The usecase 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 need to use the application for different purposes. The goal of PDD is to identify the different types of users of the system and to gain an understanding the unique needs of each. PDD accomplishes this goal by modeling the as-is and to-be business processes in which the application to be constructed is involved and identifying the places where individual users interact with the system to add value to the business process. The people who interact with the 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 used as the basis for use-case driven development with full confidence that it represents exactly the right 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 Process Modeling Notation (BPMN). [24]

Schedule Acceptance Test Plan during Software Development Testing Phase [25] A Process Development Execution System (PDES) is a system which is used by companies to 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, while MES 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 and experimentation freedom. The tools of an MES are more focused on less variance, higher volumes, tighter control and logistics. Both types of application software increase traceability, productivity, and quality of the delivered result. For PDESs quality refers to the robustness of the developed manufacturing process. For MESs quality refers to the quality of the manufactured good (economics and accounting)/commodity. Additionally both software types share functions including equipment tracking, product genealogy, labour and item tracking, costing, electronic signature capture, defect and resolution monitoring, Executive Dashboards, and other various reporting solutions. Other rather similar software categories are Production Information Management System (PIMS), Laboratory Information Management Systems (LIMS) and Laboratory information system (LIS). PDESs offer a wider set of functionalities e.g. virtual manufacturing techniques, while they are typically not integrated with the equipment in the laboratory. PDESs have many parts and can be deployed on various scales - from simple Work in Progress tracking, to a complex solution integrated throughout an enterprise development infrastructure. The latter conncets with other enterprise systems like Enterprise Resource and Planning Systems (ERPs), Manufacturing Execution Systems (MESs), Product Lifecycle Management (PLM), Supervisory, Control and Data Acquisition (SCADA) solutions and Scheduling and Planning Systems (both long-term and short-term tactical). [26]

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 project artifacts, including: requirements, plans, designs, source code, test plans and results, problem reports, reviews, notes, and other artifacts of the development process. Typically, an SDF is hierarchically 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 configuration management tool such as CVS or IBM Rational ClearCase, in conjunction with a change management process. IEEE/EIA guide 12207.1, 'Software life cycle processes - Life cycle data', 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 binders containing these records, but the term and concept have been adopted widely, and evolved to include both physical and electronic media, and less centralized repositories. As such, the SDF is often represented as an index with references to its constituent repositories. [29] Analysing a Software Development Company's Requirements Specification Process http://t.co/ehF4wTp via @Isadora90442 [30] Adaptive Software Development is a software development process that grew out of rapid application 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,

collaborate, and learn cycles. This dynamic cycle provides for continuous learning and adaptation to the emergent state of the project. The characteristics of an ASD life cycle are that it is mission focused, feature based, iterative, timeboxed, risk driven, and change tolerant. The word speculate refers to the paradox of planning it is more likely to assume that all stakeholders are comparably wrong for certain aspects of the projects 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 the uncertain 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 the knowledge is gathered by making small mistakes based on false assumptions and correcting those mistakes, thus leading to greater experience and eventually mastery in the problem domain. [31]

Some more thoughts about Software Development Process:


Here is a quote from the Schwaber and Beedle book "Agile Software Development with Scrum"... "Empirical process control models are elegantly simple. ... [32] A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software [33] We've presented an example of the software development process across several posts over 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 the development of a software product. Software development may include research, ... [35] Software Development. These are the days of outsourcing and end users for whom software 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!

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

Flickr
19. [19] Business process outsourcing in the Philippines: Software Development and

Animation 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 via

Flickr
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!

Anda mungkin juga menyukai