How do I quantify regression errors sensibly

At a glance. 1 Introduction to software architecture, software design NET for advanced users


1 At a glance At a glance 1 Introduction Software architecture Software design NET for advanced users Professional coding Windows Communication Foundation Database and data access Workflow Foundation Windows 8 and WinRT Software tests Software maintenance

2 Contents Contents Preface to the second edition Preface to the first edition Introduction Teaching and practice The difference Good software, bad software Ways to solve the case The individual chapters Software architecture Introduction The problem Good software architecture, bad software architecture Tasks Application types The architect Requirements Types of requirements Anatomy of a requirement The Right Measure Components Identify Components Relationships Processes What is a Process? Business Process Modeling Architecture Effects Layer Basics Layer vs. Tier

3 Content The facade Presentation layer Business layer Data layer Tier and distributed software Reasons for or against distribution Design features of distributed architectures Levels for distribution The most important questions for architects Design features Coupling Resilience Performance security Validation Localization Status information Interoperability and integration The admin perspective Transactions and simultaneity ( Concurrency) Error handling Architecture models Monolithic applications Client-server architecture Multi-tier applications Service-oriented architectures (SOA) Procedure Step 1: Define architecture goals Step 2: Analyze the environment Step 3: Design, review and iteration Step 4: Technology decision Step 5: Documentation Documentation What good documentation distinguishes models Contents What else needs to be said

4 Contents 3 Software design Basic design goals Fulfillment of the function Reliability and robustness Maintainability Extensibility Object-oriented analysis and design Reasons and tasks of OOA / OOD The case study Abstraction and hierarchy Objects and class relationships Was that it? Design decisions Good design, bad design Exception handling Logging Data model Interfaces and integration Integration Differentiation options Minimum standards User interfaces The right technology Requirements for a good graphical user interface Case study: Development of the Kalimba.KeyAccount system The "rest" configuration Basic information on configurations NET configuration files Database configuration How to deal with of the time in applications Duration and perception User-friendly information dialogs Other tips and tricks Tutorial: The Enterprise Library The Logging Application Block The Exception Handling Application Block

5 Contents 4.NET for advanced users Parallel processing When is parallel processing even worthwhile? Parallelism in Practice What are threads? Multithreading Classic Threads Thread Pools Timer Task Parallel Library Async and Await Thread Synchronization Error Handling What is an Exception? The status Try Catch Finally System.Exception Own exception classes Finally, regular expressions Regular expressions Alternative and grouping Search for reserved characters Character selection Quantifiers Context-sensitive conditions Search options Groups Lambda expressions Delegates Lambda expressions Func and action delegates Lambda expressions vs. anonymous methods Expression Tree Babylon revisited

6 Contents 4.5 Transactions Why Transactions? Transaction Features TransactionScope Committable Transaction Tracing Extension Methods Writing Extension Methods The Compiler Advantages, Disadvantages, Recommendations Serialization An Example Serializer BinaryFormatter XmlSerializer Automatic Memory Management Memory Allocation Garbage Collection Finalization Monitoring Professional Coding What is Clean and Structured? The Fundamental Problems What makes good code? Code style guides Good naming German or English Meaningful singular or plural camelcase empty words, weasle words and reserved words Fixed naming conventions C # conventions Neatly formatting structure

7 Content Formatting Meaningful Commenting Of course Brevity and conciseness // vs. / * * / // todo Comments in Visual Studio Location The right time Topicality Classes and class hierarchies Class or interface? Class or struct? Class Size Responsibility Extensibility Abstract Classes Static Classes Functions Function Size Responsibility Constructors Property or Function? Parameters Extension Methods Interfaces Enums Properties Exceptions When? Where? How? Refactoring Reasons Code Smells The Tools Process Refactoring Pattern

8 Contents 5.13 From practice: Code analysis in Visual Studio Tutorial: Snippet Designer Windows Communication Foundation Services at a glance The first WCF service The project The service The configuration file web.config The client Anatomy of a WCF service Endpoints Addresses Binding Contracts Configuration Transport session Hosting characteristics of a good host Visual Studio Selfhosting NT Services IIS WAS AppFabric Decision-making aid Clients Generate proxy Details about the generated proxy Proxies use ChannelFactory Services in detail Service Contracts Data Contracts Communication pattern

9 Contents 6.7 Error Handling Basics FaultException SOAP Faults Transactions Distributed Transactions Transactions in WCF Guide Resource Conflicts Instances Instancing Modes Load Limitation Security Introduction Securing the Transport Route and Message Detailed Configuration Identity Authorization Practical: Expanding the WCF Step 1: Setting up the project Step 2: The transfer object Step 3: Attaching the Transfer object to a message Step 4: The Client Step 5: The Service Step 6: Configuration Step 7: Test Tutorial: Message Queuing Introduction Step 1: Install MSMQ Step 2: Create Queues Step 3: Set Up Projects Step 4: CustomerPortalService Step 5: SalesPortalService Step 6: Implementations Step 7: Hosting Step 8: Configuration Step 9: Tests

10 Contents 7 Database and data access NET in SQL Server Preparations User-defined data types Security Stored procedures User-defined functions Triggers User-defined aggregate functions Use in practice XML in the database Create table with XML data Add data Read out data Create indices Query data Modify data Full text search Installation Create full text catalog data Query Filestream Install Filestream Activate Filestream Set up database for Filestream Extend tables with Filestream columns Store files with SqlFileStream The administration of Filestream files Retrieve files Full text and Filestream From practice The ADO.NET Entity Framework Introduction Set up project Extend model Query data Add data and change SaveChanges and Simultaneity What else needs to be said

11 Contents 7.6 WCF Data Services Overview Create a simple WCF Data Service Test the WCF Data Service Access from application Recommendations for use LINQ to XML Create static XML files Create XML files from existing structures Extension methods Load XML files Queries XML- Change data Use in practice What else could be said Workflow Foundation Introduction Why workflows? The workflow Workflow Designer Windows Workflow Foundation at a glance Case study The first sequential workflow Setting up the project Designing the workflow Further expansion The first flowchart workflow Incoming goods reloaded Redesigning the incoming goods workflow Loading and executing workflows Executing workflows in XAML Executing workflows in code WorkflowApplication Built-in activities use listing

12 Contents Parallel processing Error handling Execution control Event control TerminateWorkflow Other activities Developing your own activities Activities at a glance Life cycle CodeActivity CodeActivity with return value CodeActivity with validation NativeActivity ActivityDesigner Bookmarks What else needs to be said Transactions TransactionScope Compensations Persistence InstanceStore Set up SQL Server Changes to the workflow application Save in code Persistence protection Tracking and Tracing Tracking Basics Tracking Objects Case Study Tracing Workflow Services Basics Activities Case Study Part 1: The Laboratory Service Case Study Part 2: WF calls WCF Case Study Part 3: The Laboratory Client Case Study Part 4: WCF calls WF Case Study Part 5: Persistence Correlation Finally

13 Contents 8.12 State Machine Workflows Initial State Final State States in between State Transitions Recommended Exercise Designer Rehosting Case Study Integrate the Designer Equip the Toolbox Windows 8 and WinRT Introduction Runtime Requirements The Windows 8 Design Deployment and the Windows 8 App Store Processes in WinRT and the Windows Application Model Case Study Set up project Requirements Templates Creating and setting up a project Adding pages The navigation concept Adding pages Defining the start page Starting the application Adding data Class model Loading from XML into the class hierarchy Adding a resource Loading data when the app is called Binding data to a control The general information on navigation lexicon page Navigation to the lexicon page

14 Contents Lexicon page: Show products Lexicon page: Show lexicon entry The order page and the app bar App bars in your own applications Add an app bar The shopping cart page The display The app bar Changes to the data model The order confirmation page Life cycle and status management Introduction Application data Session data Frame navigation Session data Status of the pages Contracts The search Implement the search Test Develop for different layouts The simulator Different formats How it works Recommendations Software tests Basics Aims and tasks Overview and classification of the tests From the right point in time The tester and his team The test procedure Small error customer Test planning and organization Release management

15 Contents The test team Test cases Test environment Requirements The software to be tested Data Computer and operating system Server and additional components Tools Test procedures and tools Exploratory testing Test-to-pass vs. test-to-fail Equivalence class formation Limit values ​​Senseless data Program states Decision tables Flowcharts Business process models Continuous delivery Test types Test the specification Unit test Component test Usability test System test Field test Acceptance test Code review The rest of the workshop: Unit tests with Visual Studio Creating a test project Adding the unit tests Code coverage Practical recommendations

16 Contents 11 Software maintenance Release management terms The release process Requirements Introduction The different perspectives Requirements for a requirement Time estimation What is a time estimation? Challenges of Time Estimation The Learning Organization Where Do Timeouts Come From? Methods of time estimation Finally, index

17 Index - (private) # (protected) (public) ~ (package) A Abort analysis Abbreviation Schedule acceptance test, 1060, 1085 subscribers Abort Aborted AbortRequested AboveNormal Abstract class, 398 Abstract method abstraction Accumulate axis methods ACID ACID principle Action-Delegate Activity Activity < TResult> ActivityDesigner ActivityInstanceState, 805 ActivityScheduledQuery ActivityScheduledRecord ActivityStateQuery, 845 ActivityStateRecord Add (Interlocked) AddAfterSelf AddBeforeSelf AddFirst AddImplementationVariable AddOrUpdate AddValidationError ADO.NET Services, ADO.NET8 Services, aggregate address, 867, EntityExrror, 867, Entity Services, ADO , 270, 409 Aggregate Functions Custom Aggregation Activity Assign, 776 Delay DoWhile Develop Your Own Built-in Flowchart FlowDecision ForEach InvokeMethod Parallel ParallelForEach Persist RemoveFromCollection Switch- TransactionScope While Activity Diagram Algorithmic Time Estimation ung ALTER FULLTEXT INDEX Alternative ambient transaction analysis, stylistic Ancestors Ancestors AncestorsAndSelf requirement ... 44, 1087 Structure functional ... 44, 1089 Characteristics non-functional ... 44, 1089 Scope acceptance deadline Anonymous method, 323 Application multilayered monolithic application description use case diagram application type API App Bar, 954 app.config App_Code

18 AppFabric ... 84, 495 Application Architect Application Block Application Pool Application Server Extensions Appx Manifest Equivalence Class Architect Software Architect Architecture Software Architecture Architecture Error Arguments, 812 ASP.NET MVC ASP.NET Web-API Assert Assign Activity, 767, 776 Association reflexive association class async async / await AsyncCodeActivity Asynchronous execution Asynchronous interface Asynchronous processing atomic AtomPub AttachedToParent, 266 attributes, 148 name visibility attributes auditloglocation effort / duration (differentiation) expression, regular failsafe execution, asynchronous exceptions AuthenticationType Authentication ... 91, 93 Procedure WCF auto-commit Memory Management Authorization ... 91, 93 WCF, 595 await B Background BAL Tapeworm Code Base Activity Library, 748, 772 Baseline Provisioning basichttpbinding, 591 Base Address Batch Conditions, Context-Sensitive Accompanied Introduction BehaviorElementExtensio n BelowNormal Named Method Naming Attributes Code Elements Classes Namespaces Interfaces Directories Custom Aggregate Function Custom Data Types Custom Function User Interface Case Study Good Permission Set Best Practices Beta Version Beta Version Rated Function Points Relationship Dependency Injection Tight Coupling Hierarchical Loose Coupling Between Classes Bidirectional Interface BinaryFormatter, 343 Binding, 460 , 867 predefined BindingConfiguration BizTalk, 737 Blackbox BlockingCollection Bookmark BookmarkResumptionQuery BookmarkResumptionRecord Bottom-up approach Boxing BPML ... 56, 738 BPMN Break

19 Bugzilla Business Component Design Business Entity Business Layer Recommendations Business Process Modeling Language ... 56, 738 Business Process Modeling Notation Business Logic Database Byte C Cache CacheMetadata Callback, 541 CamelCase Canceled CancellationHandler CancellationScope CancellationScope Activity CancellationToken, 271 CancellationTokenSource CatchRequestedInstery CancelRequestedRecord catchCreateCreate Request, 1079, 1087 Change Tracking ChannelFactory, 613 ChannelFactory Charms CI Client Identity WCF, 468, 499 ClientBase clientcredentialtype Client-Server Architecture System Closed CloseTimeout Closure clr enabled Format code Good commenting code (cont.) Legibility bad structure Maintainability Code coverage CodeActivity, 806, 811 CodeActivity CodeActivityContext Code analysis Code analysis Code extract manager Name code elements Code metric Code review CodeRush Code smell Code snippets Code style guide Code line length ge Collect Collections threadsafe ColumnCount Commit Committable Transaction CommunicationException, 553 Community Technology Preview CompareExchange CompensableActivity-Aktivity Compensation CompensationHandler CompensationToken Complete CompleteAdding Completed CompletionCondition CompletionState Component Composite Activities Conceptual Model Conceptual Schema Definition Language Concurrency ConcagerMode ConcurrentMode.Reentrant Configuration Concurrency ConcurrentBagation

20 consistent contains CONTAINSTABLE Content-based correlation, 890 ContentHandle Context connection Context correlation ContinueOnError ContinueWith Continuous Delivery, 1043 Continuous Deployment Continuous Integration, 1044 Contract ... 82, 116, 452, 463, 867 Contract (WinRT) Contract First Development Contracts (WinRT ) Controller CorrelatesOn Correlation, 888 CorrelationHandle, 890 CorrelationInitializers CorrelationScope activity CR, 1087 CreateBehavior Critical CSDL CSV CTP CurrentThread Custom Activity, 801 Custom Bindings Custom TrackingParticipant CustomBindings Customizing CustomTrackingQuery CustomTrackingRecord, 863 Versioning Data Layer ... 71, 75 Characteristics Data Member Data Member (Attribute) Data Transfer Objects ... 70, 523 DataContract DataContract (Attribute), 868 DataContractSerializer, 524 DataService DataServiceCollection DataServiceContext Query data, 662 modify senseless Da database business logic configuration data conversion data model data record lock data types user-defined data access DateTime DbContext DBMS DbSet DbUpdateConcurrencyException Deadlock Debugging Workflows Decrement Default (GCCollectionMode) Defect definition area Delay activity Delegate Action Func delegate (keyword) Delphi-Method Demilitarized of Service ... ... 54, 166, 411 Deployment, 1085 Deployment Notes DescendantNodes DescendantNodesAndSelf Deserialization Deserialize Design Design Patterns Design decisions Involve designers Designer Rehosting Design errors Design features

21 DevOps Diagram Types Activity Diagram Use Case Diagram Entity Relationship Diagram Class Diagram Communication Diagram Component Diagram Composition Structure Diagram Package Diagram Sequence Diagram Use Case Diagram Behavior Diagram State Diagram Design Dialog Update Service Reference Add Configure Dirty Read Disconnected Data DiscoveryClient DisplayName Dispose disposing Distributed Transaction Coordinator, 329, 557, 559 DistributedIdentifier Documentation, 164 the configuration contents DOM DoS ... 92, 245 DoWhile activity, 795 DTC, 559 DTO ... 70, 523 Dublin duetime duplex communication durable dynamic test E Eager Loading EAI ... 56, 100, 172 EF Effective priority Efficiency Own exception classes Properties or functions Indentation, 383 Restriction Singular Individual estimation Elegance Elements Parent thread Embedded systems Empirical time estimation Encoding EncryptAndSign Endpoint EndpointAddress Endpoints own configur ationless standard close coupling ... 53, 82 Enlistment Enter (Monitor) Enterprise Application Integration 56, 100, 172 Enterprise Library, 224, 553 Enterprise Service Bus Entität Entity Framework ...72, 678 Entity SQL, 691, 694 Entity-Relationship-Diagram EntityState Decision Tables Draft Design Pattern Enum enum WCF EnumMember EPK ER-Diagram Event Viewer Event-Driven Process Chain Events Event Control Publication Date Replace Extensibility, 166 Extension Methods, 403, 723 ESB Escape ETW

22 EtwTrackingParticipant Event Event Tracing for Windows EventData Evolvierbarkeit Exception, 303, 407 catch hierarchy, 299, 550 Logging unhandled exception handling, 167, 291 WCF, 546 Exception handling Application block exception classes, own ExceptionPolicy ExceptionSource ExceptionSute ExecuteInstanceId Exchange (Interlocked) Execute ExecuteId Exchange (Interlocked) ExecutionProperties expansion Explorative Testing, 1035 Expression Tree, 324 Extensibility Extensible Application Markup Language ExtensionData Extreme Programming Eye Tracking F Facade FailFast Case Study Facade Fault Contracts, 464, 551 Faulted, 806 FaultException FaultPropagationQuery FaultPropagationRecord Faults Feature Error Error handling, 291. 407 WCFault Change Request Critical Error priority (cont.) Low Medium Showstopper Error status Field test Filestream Full text search Filled Finalizer finally, 410 FindCriteria FindResponse Fire and Forget, 538, 735 Flatten Float Fl owchart activity, 790 Flowchart workflow, 763 FlowDecision activity, 765 FlowStep activity FlowSwitch activity, 790 FOR DELETE FOR INSERT FOR UPDATE Forced ForEach activity, 776 Forecast Format, native formatting progress bar, 215 Marquee-Mode frame class free text FREETEXTTABLE FromCurrentSynchronizationContext FULL POPULATION FullScreenLandscape FullScreenPortrait FULLTEXT INDEX fulltext_load_thesaurus_file Func delegate Function Points evaluated unevaluated functional requirement ... 44, 1089 Functional model functions, 398, 1087 user-defined size responsibility


24 Integration ... 98, 169, 172 Integration Architect Integration test Interlocked Internet Information Server interoperability InvalidOperationException Inversion of Control Invoke, 769 InvokeMethod activity IObjectContextAdapter IoC IPC IProducerConsumerCollection IRemotingFormatter IRequestHandler Is-a-relationship IsAnonymous IsCurrentequeded IsLancletyteGeldest IsAnonymous IsBackground IsLancletyte IsExcletyEqued IsLancletyte IsExComplety IsLeady IsL isComplety IsExComplety IsLested IsCompletion IsExCurrent IsLested IsBanclet Isolation Level, 331, 565 IsOneWay isrequired IsServerGC IsStopped Issue Is-a-relationship ISTQB Certified Tester IsUpdatedColumn J Java Script Object Notation Join JSON K Kalimba Sunfood GmbH Kernel Transaction Manager Kernel-Mode-Objects Key User Kind-Task Classes abstract, 398 name relationships Size good and bad design hierarchy or interfaces or struct partial static class attribute class diagram class operation add node Known Issues KnownType Comments // vs. / * * / /// placement Sensible Visual Studio communication diagram Communication path of the interfaces Comparative time estimation Compatibility of data contracts Compensation Compensation, 558 Component software component Component diagram Component test, 1053 Composition Composition structure diagram configuration, 197 Backup documentation in the database Versioning WCF Configuration-less endpoints Configuration management problems Constructors Context-sensitive conditions Context change Control structures Coupling close logical

25 Coupling (cont.) Loose KTM L Lambda Expression Lambda Statements Lambda Expression, 319, 324 Load Limitation Load Test Runtime Error Runtime Environment Workflows Layer Business Data Disadvantages Presentation Software Architecture UI Advantages LayoutAwarePage Lazy Loading Lead Architect Empty Words Spaces Lightweight Transaction Performance Monitoring Code Readability Lightweight Transaction Manager like Lines of Code LINQ, 712 to Entities to XML LINQ to EF ListView LLBLGen ... 74, 678 Load Load Balancer Load Balancing LoC LocalIdentifier Locking log4net LogCategory Logger Logging, 169 Recommendations of Exceptions Logging Application Block Logical Coupling Logical Lock Logical Error Logical Model Local Transaction Localization Lookahead Lookbehind Loose coupling ... 54, 82 Lost Updates Low Lowest LowestBreakIteration, 271 LTM M machine.config Managed Heap Managed Services Managed Thread ManagedThreadId Mantis Marquee-Mode Match MatchCollection MaxConcurrentCalls MaxConcurr entInstances MaxConcurrentSessions MaxDegreeOfParallelism Medium Multi-tiered application Multiple milestones Merge Message Contracts Message Queuing, 607 MessageAuthenticationAuditLevel MessageInspector Metadata Exchange MethodBase Methods abstract abstract anonymous, 323 named extension, 403, 723 extract overloaded (WCF) merge

26 MethodImpl MEX endpoints mexhttpbinding mexhttpsbinding MexNamedPipeBinding mextcpbinding Microsoft App Store Microsoft BizTalk, 737 Microsoft Fakes Microsoft Message Queuing, 329 Middleware Systems Milestones Mobile Application Mocking Framework Mock Objects Model Model View Controller Model Data Functional Safety Distribution Module Test Monitor Monitoring, 358 Monolithic Application Moqing Targets MSDTC, 329 MSL MSMQ, 607 install MTOM MulticastDelegate multiplicity, 155 Multithreading In.NET multi-tier application MVC ... 64, 705 Advantages N naming conventions Name namespace NativeActivity NativeActivity NativeActivityContext Natural User Interface NEAR Concurrency, 591 netmsmqnamedpinding , 588 nettcpbinding, 588 Never change a running system nhibernate ... 74, 678 Non-functional requirement ... 44, 1089 NMock nomenclature Non-Repeatable Read NonSerialized Normal NotifyRethrow NotOnCanceled NotOnFaulted NotOnRunToCompletion NotSupp ortedException NServiceBus nservicebus NT-Services NUI Null NUnit O ObjectContext ObjectDisposedException Identify objects Object-oriented analysis and design Object-oriented programming Object-relational mapper ObservableCollection Occasionally Trouble Forecast ODP OleTransactions OnDeserialized OnDeserializing OnlyOnCanceledception ODeserializing OnlyOnCanceledception ONSerializing OnlyOnCanceled OnlyOnSerializingOnCanceledOnitOnSerializing OnlyOnCanceledOnOnSerializing OnlyOnCanceledOnOnOnSerializing OnlyOnCanceledOnhandOnSerializingOnSerializingOnCanceledOnOnSerializingOnCanceledOnOnOnFaultedializedOnhandOnRO

27 OperationCanceledException OperationContext OperationContract, 463, 862 Operations Optimistic Locking Optimized OptionalField Orchestration Layer ... 68, 858 Orchestration Services order by OrderDataService ORM ... 72, 678 OR Mapper ... 70, 72, 678 OutArgument Outputs Oversubscription P Package diagram PAP Parallel.For Parallel.ForEach Parallel.

28 Reason Receive-Activity ReceiveAndSendReply-Activity Redundancy Refactoring ... 52, 411 Reasons Pattern Process Reference.cs Reference.svcmap Reflexive Association Regex Group Regex.Split RegexOptions Regression Errors Regression Test Regular Expressions RegularExpressions Rehosting, 904 Release, 1085 Planning Process Advance Notice Cycle Release Candidate Release Management Release Notes Release Management reliablesession Remove Remove RemoveFromCollection activity replacement ReplaceOnUpdate Representational State Transfer Reproducibility of errors Request / Reply, 735 RequiredArgument Requirements Requirements Management RequiresNew Reserved words ResetAbort ReSharper Resources transactional transactional resource conflicts REST Resume Review RIA Rich Client Rich Internet Application Roadmap, 1083 Robustness Rollback Role-Based Security rowversion Running S SandCastle SaveChanges, 714 SaveChangesOptions ScheduleActivity, 838 Scheduler ScheduleSample-A Activity Schema Language Layer Layer Loops, parallel interfaces ... 52, 158, 169 abstract types asynchronous name bidirectional recommendations communication path minimum standards synchronous unidirectional interface requirement Scrum SDM Sealed Sections Security Auditing security mode SecurityContext SecurityException side effects selfhosting semantic error SendingRequest SendReply-activity SendReplyReceive-Separation of Concerns Sequence Activity, 776 Sequence Diagram

29 Sequential Workflows Serializer Serialization Attribute Serializable, 340, 531 SerializationException Serialize, 343 Server Mode Service ... 42, 82, 176 Address Binding Contract Identity Overview WCF Service Configuration Editor, 469 Service Contracts, 516 Hierarchies Service Discovery Service Level Agreement ServiceAuthorizationAuditLevel ServiceBase ServiceBehavior ServiceContract, 452, 463, 862 servicedebug, 549 servicediscovery ServiceHost, 476, 870 servicemetadata, 456 Service-oriented architecture, 433, 857 servicesecurityaudit set Settings Settings-class SetValue, 810 ShouldExitCurrentIteration Showstopper Security Change security level security model in interface role-based security level test WCF security analysis Attributes WCF Methods Adding Views Sign Single Responsibility Principle Single Sign On Singleton Instantiation Scalability ... 90, 733 Scaling Horizontal Vertical SLA Sleep Snag It Snapped Snippets SOA, 857 SOAP Faults SoC Software Distributed Distribution Further Development Software Demand Manager, 1081 Software Architect Requirements Characteristics Roles Differentiation Software Architecture Requirements Application Types Tasks The Most Important Questions Decisions Good and Bad Process Service Oriented, 433, 857 Software Architecture Boundary Software Architecture Model Define Software Architecture Goals Software Design Goals Software Component Types Identify Relationships UI approach to formation software metrics software maintenance software distribution sorting

30 Source memory leaks memory management, logical specialization / generalization specification specification error set up automatic lock specification gap specification test SpinLock spinning, 285 Sporadic fault SQL Server SQL Server Data Tools SQL CLR vs. T-SQL SqlContext SqlFunction SqlProcedure SqlString SqlTrigger SqlUserDefinedAggregate SqlWorkflowInstanceStore SqlWorkflowInstanceStoreLogic SqlWorkflowInstanceStoreSchema SSDL SSDT SSO StackTrace , 303 Staging System Root Element Standard Bindings Standard Endpoints, 456 Standard Constructors START UPDATE POPULATION StartNew State Machine Workflows State Activity State Machine Workflows Static Code Analysis Static Class Static Test Status Information Stylistic Analysis Stop Stopped Stop Words StopRequested Storage Model Storage Schema Definition Language Stored Procedure Stresstest String.Replace String.Split Structogram Styleguide Search Search options Suffix Suppress suppressauditfailure Suppr essFinalize Surface Suspend Suspended SuspendRequested SuspensionManager Svcutil.exe Switch- -Activity Synchronous Interface Synchronization Pattern Syntactic Sugar Syntax error System.Configuration System.Exception System requirement System test, 1057 T Add tables Tablet simulator TargetSite Abort task Create hierarchies Start child Task Parallel Library Task.Factory Task.Run TaskContinuationOptions TaskCreationOptions TaskFactory TaskPool TaskScheduler, 271 TDD, 1052 Technology decision part-whole relationship

31 Terminate TerminateWorkflow-Activity, 800 TerminationException Test Process Acceptance Types Designer Implementation Dynamic Field Release Components Head Organization, 1017 Planning, 1017 Logging Calculator Senseless Data Specifications Static System Environment Set Up Environment Unit Usability Process Tools Time Objectives Test Driven Design Test Driven Development Testability TestClass Test Data Testing, exploratory tester, 1022 training test case prioritization test release test link TestMethod test maturity test team organizational forms roles test-to-fail, 1035 test-to-pass, 1035 thesaurus thread, 250 cancel parent start status interrupt synchronization waiting for thread pool ThreadAbortException thread-safe collections ThreadStart ThreadState ThreadStatic Throttling, 579 throw Throw activity ThrowIfCancellationRequested ThrowNewException Tier ... 63, 76 Delimitation Timeout Timeout.Infinite TimeoutException Timer TimerCallback Top-down approach TPL Traci ng, 843, 854 Tracing-Level Tracking Objects Profile TrackingParticipant TrackingQuery TrackingRecord Transaction.Current TransactionAutoComplete transactionflow, 561 TransactionFlowOption TransactionScope, 330, 331 nested TransactionScope activity TransactionScopeRequired transaction, 108, 327, 554, 827 Ambient concept light-weight transmitted WCF